Geração de PDF em PHP: visão geral das bibliotecas e ferramentas
Criar documentos PDF é uma das tarefas comuns no desenvolvimento web. O PHP oferece várias bibliotecas maduras que permitem gerar PDF a partir de HTML, dados dinâmicos ou diretamente por desenho. Neste artigo, vamos analisar quatro bibliotecas principais: TCPDF, FPDF, Dompdf e mPDF, suas características, exemplos de uso e recomendações de escolha para um site educacional.
1. TCPDF — padrão da indústria
TCPDF é uma das bibliotecas mais poderosas para geração de PDF em PHP. Ela suporta Unicode, fontes TrueType, OpenType, proteção por senha, marcas d'água, códigos QR e muito mais. Ideal para criar relatórios complexos, faturas, certificados.
Instalação: via Composer: composer require tecnickcom/tcpdf
Exemplo de criação de PDF simples:
<?phprequire_once __DIR__ . '/vendor/autoload.php';
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
$pdf->SetCreator('PythonLib.ru');$pdf->SetAuthor('Autor');$pdf->SetTitle('Exemplo TCPDF');$pdf->SetSubject('Geração de PDF');
$pdf->AddPage();$pdf->SetFont('dejavusans', '', 14);$pdf->Cell(0, 10, 'Olá, mundo! Este é um PDF do TCPDF.', 0, 1);
$pdf->Output('example_tcpdf.pdf', 'I');?>2. FPDF — leve e rápida
FPDF é uma biblioteca clássica para documentos PDF simples. Ela não requer instalação de extensões adicionais e é muito fácil de aprender. Adequada para criar tabelas, relatórios simples, notas fiscais.
Instalação: baixar de fpdf.org ou via Composer: composer require setasign/fpdf
Exemplo com tabela:
<?phprequire_once __DIR__ . '/vendor/autoload.php';
$pdf = new FPDF();$pdf->AddPage();$pdf->SetFont('Arial', 'B', 12);
// Cabeçalhos da tabela$pdf->Cell(40, 10, 'Nome', 1);$pdf->Cell(40, 10, 'Sobrenome', 1);$pdf->Cell(40, 10, 'Idade', 1);$pdf->Ln();
$pdf->SetFont('Arial', '', 10);$pdf->Cell(40, 10, 'João', 1);$pdf->Cell(40, 10, 'Silva', 1);$pdf->Cell(40, 10, '25', 1);
$pdf->Output('example_fpdf.pdf', 'I');?>3. Dompdf — de HTML para PDF
Dompdf permite converter HTML+CSS em PDF. Isso é útil se você já tem a estrutura das páginas (por exemplo, fatura ou artigo). Suporta CSS 2.1 e parcialmente CSS 3, fontes, imagens.
Instalação: composer require dompdf/dompdf
Exemplo de conversão de HTML:
<?phprequire_once __DIR__ . '/vendor/autoload.php';
use Dompdf\\Dompdf;
$dompdf = new Dompdf();$html = '<h1 style="color: #3498db;">Título do PDF</h1><p>Este documento foi criado a partir de HTML usando Dompdf.</p><table border="1" cellpadding="5"> <tr><th>Coluna 1</th><th>Coluna 2</th></tr> <tr><td>Dados 1</td><td>Dados 2</td></tr></table>';
$dompdf->loadHtml($html);$dompdf->setPaper('A4', 'portrait');$dompdf->render();$dompdf->stream('example_dompdf.pdf', ['Attachment' => 0]);?>4. mPDF — poderoso conversor de HTML
mPDF é outra biblioteca para conversão de HTML em PDF. Ela suporta melhor CSS, Unicode, fontes orientais, criação de sumário, cabeçalhos e rodapés do que o Dompdf. Excelente para livros, revistas, documentos complexos.
Instalação: composer require mpdf/mpdf
Exemplo com cabeçalhos e rodapés:
<? Também na biblioteca
Programação Reativa em C# (.NET) — Observable, Rx.NET e LINQ
Agendador de tarefas em Node.js: node-cron, node-schedule e Bull
OpenAPI / Swagger para Java: guia completo com exemplos
zerolog para Go: guia completo com exemplos práticos