blank

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 1 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.

Pré-requisitos

Assim que você fizer o download da biblioteca mPDF, descompacte-o dentro da pasta onde você poderá efetuar os testes, aqui eu uso o XAMPP para localhost, então crio uma pasta chamada gerando-pdf-com-mpdf, ficando localhost/gerando-pdf-com-mpdf e dentro dessa pasta eu descompactei a biblioteca.

Muita gente que programa PHP recebe demandas para criar relatórios, textos, documentos ou outras coisas em PDF. E sempre fazem as mesmas perguntas: como fazer? qual biblioteca usar?

No artigo de hoje apresento o dompdf que é uma biblioteca que transforma um HTML em PDF. Como programadores web temos bastante familiaridade com HTML, então, acaba que o domPDF é uma boa escolha para trabalharmos. Mas, caso você prefira “desenhar” o PDF na mão, recomendo o FPDF existem outras bibliotecas para gerar PDF como o mpdf

 

LEIA TAMBÉM:  Laravel 5 - Remover public da URL

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

Leia também:  

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 em PHP:

<?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);

?>

------------------------------------------------------
 

Conclusão sobre PDF e PHP

Agora, basta você desenhar o HTML do jeito que desejar e transformar em PDF. No gist existem outros exemplos para você utilizar.

Um grande abraço e até o próximo artigo.

Como vender Software - Seja desktop, web ou MobilePowered by Rock Convert
Powered by Rock Convert
Siga os bons!
Últimos posts por Ramos de Souza Janones (exibir todos)
vote
Article Rating