Se você é um desenvolvedor PHP, provavelmente em algum momento vai precisar criar documentos PDF para seus clientes. Existe uma classe chamada de dompdf que pode fazer todo o serviço para você, assim você não vai precisar reinventar a roda quando for criar um novo site.

É uma classe imensa, cheia de métodos para que você possa ter total flexibilidade com seus scripts.

Neste tutorial, vou informar apenas o básico, detalhando como criar seus arquivos PDF a partir de qualquer HTML (válido) do seu documento. Você poderá incluir até mesmo CSS dentro das tags style para estilizar seu documento.

Também vou deixar um link para download do exemplo criado nessa página, juntamente com a classe. Mas não se esqueça que o link oficial para download deverá ser encontrado em https://github.com/dompdf/dompdf.

Download

Para baixar o exemplo que você vai ver neste tutorial, basta acessar o link abaixo:

Download DOMPDF (com exemplo)

Repetindo: O download que você fará acima é o exemplo que verá no restante do texto. Não somos os autores da classe, saiba mais no link indicado na introdução do artigo.

Exemplo de utilização

A classe DOMPDF é capaz de criar arquivos PDF diretamente do seu HTML. Após fazer seu download, separe os arquivos da classe em uma pasta única para facilitar a manutenção.

No meu caso, criei uma pasta chamada dompdf e incluí os arquivos dentro da mesma.

O arquivo principal que você deverá incluir no seu script para ter a funcionalidade da dompdf é o dompdf_config.inc.php. Como meu arquivo está dentro da pasta “dompdf“, o cabeçalho do meu script ficou assim:

/* Carrega a classe DOMPdf */
require_once("dompdf/dompdf_config.inc.php");

Pronto, agora eu preciso criar uma instância da classe e chamar os métodos que preciso. Como vou criar apenas documentos PDF de um texto HTML, o código completo ficou assim:

<?php
/* Carrega a classe DOMPdf */
require_once("dompdf/dompdf_config.inc.php");

/* Cria a instância */
$dompdf = new DOMPDF();

/* Carrega seu HTML */
$dompdf->load_html('<p>Adicione seu HTML aqui.</p>');

/* Renderiza */
$dompdf->render();

/* Exibe */
$dompdf->stream(
    "saida.pdf", /* Nome do arquivo de saída */
    array(
        "Attachment" => false /* Para download, altere para true */
    )
);
?>

Você só precisará editar o trecho onde indico o seguinte:

<p>Adicione seu HTML aqui.</p>

Por exemplo:

<?php
/* Carrega a classe DOMPdf */
require_once("dompdf/dompdf_config.inc.php");

/* Cria a instância */
$dompdf = new DOMPDF();

/* Carrega seu HTML */
$dompdf->load_html('<!doctype html>
<html>

<head>
<meta charset="UTF-8">
<title>Atenção, apenas um teste</title>
<style>
* { font-family: sans-serif; }
</style>
</head>

<body>

<header>
    <h1>Atenção, isso é apenas um teste</h1>
    <p>Estou dando um exemplo sobre como utilizar a dompdf. 
    Meu nome é <b>Luiz Otávio</b> E trabalho no blog 
    <a href="http://www.todoespacoonline.com/w/">todoespacoonline.com/w</a>. Minha foto segue abaixo:
    </p>
    
    <p style="text-align:center">
        <img src="foto.jpg">
    </p>
</header>

</body>

</html>');

/* Renderiza */
$dompdf->render();

/* Exibe */
$dompdf->stream(
    "saida.pdf", /* Nome do arquivo de saída */
    array(
        "Attachment" => false /* Para download, altere para true */
    )
);
?>

O trecho acima deverá gerar o seguinte PDF:

PDF gerado pelo exemplo anterior

PDF gerado pelo exemplo anterior

Caso queira saber mais sobre a classe, basta acessar o link indicado no início do artigo.

Concluindo

Conforme descrevi, essa classe não foi criada pelo Tutsup. Ela faz muito mais do que indiquei no artigo, como carregar arquivos externos, aceita HTML5 e assim por diante.

Apesar disso, apenas o que foi indicado acima já serve para milhares de coisas que você cria para seus clientes, como relatórios, tabelas, gráficos e muito mais. Não deixe de fazer um teste.

Caso tenha dúvidas, não hesite em comentar abaixo.