Geração de relatórios PDF em PHP: visão geral das 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 relatórios PDF em PHP: guia completo para desenvolvedores



Criar documentos PDF é uma das tarefas mais requisitadas no desenvolvimento web. Relatórios, faturas, certificados, materiais didáticos — tudo isso frequentemente precisa ser gerado dinamicamente no lado do servidor. O PHP oferece várias bibliotecas poderosas que permitem criar PDFs de qualquer complexidade. Neste artigo, vamos analisar quatro ferramentas populares: TCPDF, FPDF, Dompdf e mPDF, além de fornecer exemplos práticos de código.



Por que gerar PDF em PHP?

PDF (Portable Document Format) é um formato universal que é exibido corretamente em qualquer dispositivo. Em projetos educacionais, como o PythonLib, os relatórios PDF podem ser usados para:

  • Exportar resultados de testes e exames
  • Criar certificados de conclusão de cursos
  • Gerar materiais didáticos e resumos
  • Elaborar relatórios estatísticos para professores


Visão geral das bibliotecas populares



1. TCPDF

TCPDF é uma das bibliotecas mais poderosas e maduras para trabalhar com PDF em PHP. Ela suporta:

  • Conjunto completo de recursos do PDF 1.7
  • Incorporação de fontes (incluindo Unicode e cirílico)
  • Desenho de gráficos, tabelas, QR codes
  • Suporte a CSS (limitado)

Exemplo de uso básico:

require_once('tcpdf/tcpdf.php');

$pdf = new TCPDF('P', 'mm', 'A4', true, 'UTF-8', false);$pdf->SetCreator('PythonLib');$pdf->SetAuthor('Desenvolvedor');$pdf->SetTitle('Relatório de teste');

$pdf->AddPage();$pdf->SetFont('dejavusans', '', 14);$pdf->Cell(0, 10, 'Olá, mundo! Este é um relatório PDF.', 0, 1, 'C');

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


2. FPDF

FPDF é uma biblioteca leve e rápida, ideal para documentos simples. Suas principais características:

  • Não requer dependências externas
  • API simples para adicionar texto, imagens e linhas
  • Suporte a UTF-8 através de pacotes adicionais

Exemplo de criação de tabela:

require('fpdf/fpdf.php');

$pdf = new FPDF();$pdf->AddPage();$pdf->SetFont('Arial', 'B', 16);$pdf->Cell(40, 10, 'Nome', 1);$pdf->Cell(40, 10, 'Pontos', 1);$pdf->Ln();$pdf->SetFont('Arial', '', 12);$pdf->Cell(40, 10, 'João', 1);$pdf->Cell(40, 10, '95', 1);$pdf->Output();


3. Dompdf

Dompdf permite converter HTML+CSS em PDF. Isso é conveniente se você já usa mecanismos de template (por exemplo, Twig). Recursos:

  • Suporte a CSS 2.1 e parcialmente CSS3
  • Trabalho com imagens e fontes
  • Integração simples com aplicações web

Exemplo com template HTML:

use Dompdf\\Dompdf;

$dompdf = new Dompdf();$html = '<h2 style="color:blue;">Relatório do curso Python</h2> <p>Aluno: Alex, resultado: 87%</p>';$dompdf->loadHtml($html, 'UTF-8');$dompdf->setPaper('A4', 'portrait');$dompdf->render();$dompdf->stream('report.pdf');


4. mPDF

mPDF é outra biblioteca para converter HTML em PDF. Ela suporta estilos complexos, Unicode, além de:

  • Criação automática de sumário
  • Marcas d'água e fundos
  • Trabalho com grandes volumes de dados

Exemplo com folha de estilos:

require_once __DIR__ . '/vendor/autoload.php';

$mpdf = new \\Mpdf\\Mpdf();$mpdf->WriteHTML('<h1>Estatísticas</h1>

Recommendations