Geração de relatórios PDF em PHP: visão geral das bibliotecas e exemplos

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 relatórios PDF em PHP: escolhendo a biblioteca

Criar documentos PDF é uma das tarefas mais requisitadas no desenvolvimento web. Faturas, atas, relatórios estatísticos, listas de preços — tudo isso muitas vezes precisa ser gerado dinamicamente no lado do servidor. O PHP oferece várias bibliotecas maduras para geração de PDF. Neste artigo, vamos analisar as três ferramentas mais populares: FPDF, TCPDF e Dompdf, além de fornecer exemplos práticos de código.



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

FPDF é uma biblioteca simples que não requer dependências externas. É ideal para relatórios básicos: texto, tabelas, imagens simples. Principais características:

  • Funciona sem instalar extensões adicionais (além do GD padrão para imagens).
  • Suporta UTF-8 através de um plugin separado (tFPDF) ou conversão manual de fontes.
  • Excelente desempenho em documentos simples.

Exemplo de criação de um relatório PDF simples com tabela:

<?phprequire('fpdf.php');

$pdf = new FPDF();$pdf->AddPage();$pdf->SetFont('Arial', 'B', 16);$pdf->Cell(40, 10, 'Relatório de Vendas', 0, 1);$pdf->SetFont('Arial', '', 12);

// Cabeçalhos da tabela$pdf->Cell(40, 10, 'Produto', 1);$pdf->Cell(30, 10, 'Quantidade', 1);$pdf->Cell(40, 10, 'Preço', 1);$pdf->Ln();

// Dados$pdf->Cell(40, 10, 'Notebook', 1);$pdf->Cell(30, 10, '5', 1);$pdf->Cell(40, 10, 'R$ 45.000,00', 1);$pdf->Ln();$pdf->Cell(40, 10, 'Mouse', 1);$pdf->Cell(30, 10, '10', 1);$pdf->Cell(40, 10, 'R$ 1.200,00', 1);

$pdf->Output('D', 'report.pdf');?>


2. TCPDF — ferramenta poderosa para relatórios complexos

TCPDF é uma versão avançada do FPDF com suporte a UTF-8, CSS, tags HTML, códigos QR, assinaturas digitais e muito mais. Recomendado para:

  • Documentos com cirílico e outras fontes não latinas.
  • Relatórios com layout complexo (cabeçalhos e rodapés, tabelas de várias páginas).
  • Geração de PDF/A para arquivamento.

Exemplo de uso de marcação HTML no TCPDF:

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

$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);$pdf->SetCreator('PythonLib');$pdf->SetAuthor('Desenvolvedor');$pdf->SetTitle('Relatório Complexo');

$pdf->AddPage();$html = '<h2>Estatísticas do Mês</h2><table border="1" cellpadding="5"><tr><th>Parâmetro</th><th>Valor</th></tr><tr><td>Visitantes</td><td>12.450</td></tr><tr><td>Pedidos</td><td>342</td></tr></table><p>Gerado <strong>automaticamente</strong>.</p>';

$pdf->writeHTML($html, true, false, true, false, '');$pdf->Output('stat.pdf', 'I');?>


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

Dompdf é uma biblioteca única que renderiza PDF a partir de HTML e CSS comuns. É a escolha ideal se você já tem o layout do relatório (por exemplo, para impressão no navegador). Suporta:

  • CSS 2.1 e parcialmente CSS 3 (float, position, border-radius).
  • Incorporação de imagens (base64 ou por URL).
  • Tabelas, listas, documentos de várias páginas.

Exemplo de conversão de template HTML em PDF:

<?phprequire 'vendor/autoload.php';

use Dompdf\\Dompdf;

$dompdf = new Dompdf();$html = '<html><head>

Recommendations