Geração de PDF em PHP: melhores bibliotecas e exemplos de código

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Geração de PDF em PHP: revisão de bibliotecas e exemplos práticos



Criar documentos PDF é uma das tarefas comuns no desenvolvimento web. De faturas e relatórios a certificados e livros, o PDF continua sendo um formato universal para troca de documentos. Em PHP, existem várias bibliotecas poderosas que permitem gerar PDF tanto a partir de HTML quanto programaticamente. Neste artigo, vamos analisar quatro ferramentas populares: TCPDF, FPDF, Dompdf e mPDF.



1. FPDF — clássico leve e rápido



FPDF é uma das bibliotecas mais antigas e simples. Ela não requer a instalação de extensões adicionais (além do GD). A principal vantagem é o minimalismo e a velocidade. O FPDF trabalha diretamente com coordenadas, o que dá controle total sobre o posicionamento dos elementos.



Exemplo de criação de um PDF simples:

<?phprequire('fpdf.php');

$pdf = new FPDF();$pdf->AddPage();$pdf->SetFont('Arial', 'B', 16);$pdf->Cell(40, 10, 'Olá, mundo!');$pdf->Output();?>


Vantagens:

  • Tamanho muito pequeno (cerca de 100 KB)
  • Não requer dependências externas
  • Suporte a UTF-8 através de fontes separadas


Desvantagens:

  • Trabalho complexo com HTML
  • Suporte limitado a CSS


2. TCPDF — poderoso e funcional



TCPDF é uma versão estendida do FPDF com suporte a UTF-8, HTML, CSS, imagens, códigos QR, assinaturas digitais e muito mais. É a escolha padrão para documentos complexos.



Exemplo com HTML:

<?phprequire_once('tcpdf/tcpdf.php');

$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);$pdf->AddPage();$pdf->writeHTML('<h1>Título</h1><p>Este é um parágrafo com texto <b>negrito</b>.</p>');$pdf->Output('example.pdf', 'I');?>


Características:

  • Suporte completo a Unicode e RTL (árabe, hebraico)
  • Fontes incorporadas (DejaVu, FreeSerif)
  • Suporte a SVG, JavaScript, formulários


3. Dompdf — geração a partir de HTML/CSS



Dompdf converte HTML e CSS em PDF. É a escolha ideal se você já tem uma página ou template prontos. O Dompdf suporta a maioria das propriedades CSS, mas não todas (por exemplo, Flexbox e Grid podem funcionar incorretamente).



Exemplo:

<?phprequire 'vendor/autoload.php';

use Dompdf\\Dompdf;

$dompdf = new Dompdf();$html = '<h2 style="color:red;">Título vermelho</h2><p>Texto com margens.</p>';$dompdf->loadHtml($html);$dompdf->setPaper('A4', 'portrait');$dompdf->render();$dompdf->stream("document.pdf");?>


Vantagens:

  • Simplicidade: escreva HTML, obtenha PDF
  • Bom suporte a tabelas e imagens


Desvantagens:

  • Requer PHP 7.1+ e extensões mbstring, dom
  • Layouts CSS complexos podem quebrar


4. mPDF — abordagem híbrida



mPDF é uma biblioteca que combina os recursos do TCPDF e do Dompdf. Ela funciona muito bem com HTML e CSS, suporta Unicode, tabelas, cabeçalhos e rodapés, marcas d'água. O mPDF é especialmente bom para criar livros e revistas.



Exemplo com CSS:

<?phprequire_once __DIR__ . '/vendor/autoload.php';

$mpdf = new \\Mpdf\\Mpdf();$html = '<div style="border:1px solid #000; padding:10px;">Conteúdo do bloco</div>';$mpdf->WriteHTML($html);$mpdf->Output('output.pdf', 'I');?>


Vantagens:

  • Excelente suporte a CSS 2.1 e parcialmente CSS3
  • <

Recommendations