Converter HTML para PDF através da Classe Dom PHP

Você deseja converter um documento HTML para PDF? Tanto o HTML quanto o PDF são muito utilizados para quem desenvolve ou utiliza documentações envolvendo a informática, e dessa forma, é possível realizar a conversão entre um Documento HTML para um documento PDF. Neste artigo, serão apresentados os seguintes tópicos:

Antes de entender como converter um documento HTML para PDF, é necessário entender o que é um HTML, o PHP e um PDF.

O Que é HTML

Existem 3 principais linguagens básicas que compõem quase tudo que está presente nos documentos WEB hoje em dia. Dentre eles, temos o HTML, o CSS e o JavaScript que atuam diretamente no Front-End da página. Ou seja, que atuam diretamente no layout visual e interação das páginas com o usuário.

O HTML é uma linguagem de Marcação de Hipertexto. Ou seja, tem como principal função está marcando o seu documento, para que o navegador seja capaz de renderizar as informações do documento. Atualmente, se encontra na versão do HTML5.

É composto por elementos que ficam inseridos através das famosas Tags, que se iniciam com o “<“ e fecham-se com “>”. Como, por exemplo:

<h2>Meu título</h2>
<p>Meu paragrafo</p>

Dessa forma, será renderizado um documento, tal qual será possível converter o HTML para o PDF

Saiba mais sobre HTML, HTML5 e Tags HTML em nossos demais documentos. Um documento HTML geralmente é definido com a extensão .html ou .htm, porém, também é comum utilizarem a extensão .php.

O Que é PHP

O PHP nada mais é que uma linguagem de programação. Significa Hypertext Preprocessor.  Ou seja, é uma linguagem, que antecede a renderização do código de marcação. Dessa forma, é muito utilizado na WEB principalmente para criação de sistemas e outras funcionalidades que serão processadas do lado do servidor. Portanto, é uma linguagem de programação Back-End.

O HTML é muito utilizado em conjunto com o PHP, portanto, através dele é possível realizar diversas aplicações na web. Como por exemplo:

  • converter um documento HTML em PDF;
  • enviar formulários;
  • integrar APIs;
  • etc.

Portanto, vejamos abaixo uma forma de incluir um código php mesclando com um código html:

<!DOCTYPE HTML>
<html>
    <head>
        <title>Exemplo</title>
    </head>
    <body>

        <?php
            echo "Olá Mundo!!";
        ?>

    </body>
</html>

Tudo que estiver contido entre <?php  e ?> fará parte do código php, que será preprocessado no lado do servidor para então enviar a resposta ao navegador, que renderizará o resultado final.

O Que é PDF

O PDF, ou Portable Document Format, é um documento portátil. Ou Seja, é um documento que foi escrito em um padrão diferente e que não pode ser editado.

São muito utilizados para criação de documentos burocráticos, financeiros, relatórios e outros.

Ao criar um documento e converter este para PDF, você está protegendo que o conteúdo contido nele seja mantido como no original, de forma inalterável. Dessa forma, todas as fontes, imagens, cores, e formatações originais serão mantidas, sem a obrigatoriedade de que o usuário obtenha os recursos necessários (como no caso de fontes externas).

O PDF possui como extensão .pdf, e diversos documentos podem ser convertidos em PDF, dentre eles o HTML.

Converter o HTML para PDF Através do Dom PDF

O que é o DOMPDF

De forma genérica, o DOM PDF é uma classe do PHP capaz de realizar a conversão de um documento HTML em um arquivo PDF.

O dom Pdf já é utilizado há muito tempo, sendo compatível até mesmo com o CSS2.1. Ele é um renderizadores focado em estilo onde realizar um download de folhas externas, identifica todas as tags, todas as folhas de estilos e todos os atributos de estilos dos próprios elementos HTML. Atualmente, em sua mais nova versão, ele consegue renderizar a maioria dos atributos do HTML.

Onde realizar o download do DOMPDF

Inicialmente, acesse a página da classe:  https://github.com/dompdf/dompdf.

Dessa forma, você terá algumas opções: ou fazer o download via composer, manualmente através do download, ou através do GIT.

Vamos então utilizar a versão manual de instalação clicando no link que está no retângulo vermelho, conforme a imagem abaixo:

Instalando o DOM PHP Manualmente

Após isso, abrirá uma nova pagina contendo o download do DOM PDF, onde você deverá fazer o download do arquivo em formato comprimido (.zip). Assim, instalamos a classe que vai converter nosso HTML em PDF.

Veja a imagem abaixo:

Dom PDF Download

Posteriormente, extraia o arquivo dentro do diretório principal da sua página ou aplicação WEB.

Por fim, basta criar um arquivo index.php (ou o nome que desejar) onde incluiremos o Dom PDF com o seguinte código:

<?php
// Incluindo o autoload do DOM PDF
require_once 'dompdf/autoload.inc.php';
?>

Dessa forma teremos uma pasta com os seguintes itens:

Converter HTML Para PDF Pastas do Dom PDF

Sendo assim, finalmente, concluímos a instalação do nosso Dom PDF e podemos então partir para a etapa de converter html para pdf.

Converter HTML para PDF Através do Dom PDF

Agora que toda a estrutura já está pronta, basta está incluindo o seguinte código ao nosso arquivo index.php:

<?php
// Incluindo o autoload do DOM PDF
require_once 'dompdf/autoload.inc.php';

//Criando a instancia do Dom PDF.
//Criando o namespace para evitar erros
use Dompdf\Dompdf;

// Instanciando a classe do Dom DPF
$dompdf = new Dompdf();

//Criando o código HTML que será transformado em pdf
$dompdf->loadHtml('
    <h1>Ola Mundo</h1>
    <p>Meu PDF Meu PDF Meu PDF Meu PDF </p>
    <p>Meu PDF Meu PDF Meu PDF Meu PDF</p>
    <p>Meu PDF Meu PDF Meu PDF Meu PDF</p>'
);

//Define o tipo de papel de impressão (opcional)
//tamanho (A4, A3, A2, etc)
//oritenação do papel:'portrait' (em pé) ou 'landscape' (deitado)
$dompdf->setPaper('A4', 'landscape');

// Vai renderizar o HTML como PDF
$dompdf->render();

// Saída do pdf para a renderização do navegador.
//Coloca o nome que deseja que seja renderizado.
$dompdf->stream("relatorio.pdf", array(true)); 

?>

Observe que com isso, é possível gerar diversos documentos em HTML e transforma-los diretamente em PDF.

Com isso, obtemos diversas ferramentas como criação de relatórios automáticos, entre muitos outros.

Esta classe e essa função nos permite converter HTML em PDF sem muitas dificuldades, de forma rápida, e eficiente, e podendo assim mesclar com outras funções, inclusive com informações de banco de dados. Sendo assim, pode ser utilizado para sistemas mais complexos, como sistemas financeiros.

Como a classe está em constante desenvolvimento, recomendamos que sempre leiam a documentação original da mesma, que se encontra em sua página do github. Recomendamos ainda o estudo e a prática realizando testes, converter diversas vezes arquivos html, incluindo imagens e outros, para o pdf. Até que se sinta a vontade para usá-lo profissionalmente.

Este artigo foi útil?

Obrigado pela resposta!
Picture of Rafael Marques

Rafael Marques

Especialista em Desenvolvimento Web e Marketing. É apaixonado por tecnologia, empreendedorismo, audiovisual e animais. Em sua carreira, dedica-se ao empreendedorismo, além de atuar como Desenvolvedor Fullstack e redator técnico. Gosta de usar seu tempo livre para assistir a filmes, jogar, escrever, e passar um bom tempo brincando e mimando seus animais de estimação.

Contato: rafael.blog@homehost.com.br

Ganhe 30% OFF

Indique seu nome e e-mail,e ganhe um cupom de desconto de 30% para sempre na Homehost!