Como exportar uma página HTML para PDF com PHP?

Como exportar uma página HTML para PDF com PHP?

13 de agosto de 2018 3 Por Ramos de Souza Janones
Powered by Rock Convert

Utilize uma ferramenta que se chama DOMPDF (inglês) dompdf que é um conversor de HTML para PDF utlizado em aplicaçõess PHP.

O que ele faz é ler o DOM da página HTML em questão e converter a mesma para um documento PDF:

Curso completo de Games, inclusive Realidade Aumentada.Powered by Rock Convert

Existem muitos exemplos a partir da página deles (inglês), mas fica aqui um a funcionar:

<?php

/* Preparação do conteúdo
 * (costumo ter uma função a realizar esta tarefa)
 */
$html = '
<p>O meu HTML como quero ver no navegador!</p>
<p>Já formatado e com CSS.</p>';


/* Preparação do documento final
 */
$documentTemplate = '
<!doctype html> 
<html> 
    <head>
        <link rel="stylesheet" media="screen" href="https://www.site.com/css/style.css" type="text/css">
    </head> 
    <body>
        <div id="wrapper">
            '.$html.'
        </div>
    </body> 
</html>';


// inclusão da biblioteca
require_once("dompdf/dompdf_config.inc.php");


// alguns ajustes devido a variações de servidor para servidor
if ( get_magic_quotes_gpc() )
    $documentTemplate = stripslashes($documentTemplate);


// abertura de novo documento
$dompdf = new DOMPDF();

// carregar o HTML
$dompdf->load_html($documentTemplate);

// dados do documento destino
$dompdf->set_paper("A4", "portrail");

// gerar documento destino
$dompdf->render();

// enviar documento destino para download
$dompdf->stream("dompdf_out.pdf");

exit(0);
?>

Notas:
É particularmente exigente, ou seja, HTML mal formatado vai ser ignorado.
Suporta praticamente tudo de CSS 2.1.


Resumo:

Fica aqui a versão resumida do exemplo em cima apresentado para demonstrar que é possível gerar o PDF com poucas linhas de código:

<?php

$html = 'o meu HTML pronto tal como vai para o navegador!';

$documentTemplate = '
<!doctype html> 
<html> 
 <head>
  <link rel="stylesheet" type="text/css" href="https://www.example.com/style.css">
 </head> 
 <body>
  <div id="wrapper">
   '.$html.'
  </div>
 </body> 
</html>';

require_once("dompdf/dompdf_config.inc.php");

if ( get_magic_quotes_gpc() )
    $documentTemplate = stripslashes($documentTemplate);

$dompdf = new DOMPDF();
$dompdf->load_html($documentTemplate);
$dompdf->set_paper("A4", "portrail");
$dompdf->render();

// enviar documento destino para download
$dompdf->stream("dompdf_out.pdf");

exit(0);

?>

MAIS SOBRE PHP:

– PHP – Como assinar um PDF digitalmente: Certificado Digital

LINUX – Como ter duas versões do PHP no mesmo servidor Apache?

– Exportar uma página HTML para PDF com PHP

– PHP – Determinar se é final de semana: sábado e domingo

–  PHP – Envie dados ao servidor mesmo se o usuário fechar o navegador

–  PHP Do Zero Ao Profissional – Análise do Curso

 

LEIA TAMBÉM:  7 coisas simples em PHP que alguns ainda complicam

 

Leia também:  

 

 

Subscribe to our mailing list

* indicates required


Além de PHP e MySQL, deseja receber outro tema?

Email Format

LEIA TAMBÉM:  Repositórios Privados para seus Códigos e Projetos gratuito


Siga os bons!




Frontend Do Zero Ao Profissional