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.
0 comentário