Quando falamos em desenvolvimento web, é muito comum a necessidade de gerar arquivos PDF’s de algum relatório. Muitos já devem ter tido alguma dificuldade com a configuração de algumas bibliotecas para fazer esta geração.

Com a  a biblioteca DOMPDF conseguimos fazer a conversão de uma página HTML para PHP de forma fácil, rápida e com possibilidades de incluir imagens, cabeçalho, rodapé, CSS, número de páginas, tamanho e orientação do papel, etc.

Para baixar a biblioteca DOMPDF é só acessar https://github.com/dompdf/dompdf/downloads e voilà. A biblioteca é gratuita e vem com diversos exemplos, dos mais simples aos mais complexos, o que facilita ainda mais o seu entendimento.

Vamos a alguns exemplos de utilização:

Aqui um pequeno trecho HTML que depois será convertido em PDF. Notem que é possível utilizarmos CSS de forma bem simples.

$html = "
<html>
 <head>
   <style ='text/css'>
     body {
       font-family: Calibri, DejaVu Sans, Arial;
       margin: 0;
       padding: 0;
       border: none;
       font-size: 13px;
     }
 
     #exemplo {
       width: 100%;
       height: auto;
       overflow: hidden;
       padding: 5px 0;
       text-align: center;
       background-color: #CCC;
       color: #FFF;
     }
   </style>
 </head>
 <body>
   <div id='exemplo'>
<p>     Gerar PDF com a classe DOMPDF para PHP.<br />
   </p></div>
 </body>
 </html>";

No trecho acima criamos um HTML simples, com uma mensagem dentro de uma div. A div e a mensagem foram estilizadas com CSS Embed. Esse código HTML foi atribuído à variável $html que utilizaremos abaixo.

Um dos recursos da DOMPDF é a possibilidade de utilizar CSS’s e não precisar ficar definindo posições X e Y de cada elemento, como algumas bibliotecas o fazem.

Agora vamos ao código que irá fazer a conversão do conteúdo HTML da variável $html para PDF.

<?php
// Incluímos a biblioteca DOMPDF
require_once("dompdf/dompdf_config.inc.php");
 
// Instanciamos a classe
$dompdf = new DOMPDF();
 
// Passamos o conteúdo que será convertido para PDF
$dompdf->load_html($html);
 
// Definimos o tamanho do papel e
// sua orientação (retrato ou paisagem)
$dompdf->set_paper('A4','portrait');
 
// O arquivo é convertido
$dompdf->render();
 
// Salvo no diretório temporário do sistema
// e exibido para o usuário
$dompdf->stream("nome-do-arquivo.pdf");
?>

Bem simples, não?

Alguns Cuidados:

Fontes

Ter fontes true type (.ttf) instaladas no servidor é o bastante para exibí-las corretamente na tela mas para que a biblioteca DOMPDF reconheça essas fontes é preciso carregá-las para o diretório da biblioteca.

Para carregar novas fontes para a biblioteca DOMXML, basta seguir o tutorial disponível em http://www.dirtyhandsphp.com/2013/03/dompdf-new-font-installation.html.

Imagens

Se no seu código HTML forem utilizadas imagens locais (dentro do mesmo servidor onde a biblioteca DOMPDF está instalada) não precisa se preocupar. Mas se você utiliza imagens externas é necessário habilitar a função DOMPDF_ENABLE_REMOTE. No arquivo compdf_config.inc.php, na linha 289, defina DOMPDF_ENABLE_REMOTE como true.

Como vimos, a criação do de um documento PDF através da DOMPDF é muito simples. Em casos de dúvidas, dêem uma olhada nos exemplos que estão disponíveis junto com a documentação da biblioteca.


Emilio Mario Wieczorek

I talk about everything, I discuss everything, but I only support 🇧🇼Grêmio. 💻IT Manager, 🎮Gamer and 👽Jedi (or Sith, depending on the day).

0 comentário

Deixe um comentário

Avatar placeholder

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *