Generación de informes PDF en PHP: revisión de bibliotecas y herramientas
La creación de documentos PDF es una de las tareas comunes en el desarrollo web con PHP. Ya sea para generar facturas, informes, certificados o simplemente exportar datos a un formato imprimible, PHP ofrece varias soluciones maduras. En este artículo, revisaremos cuatro bibliotecas principales: TCPDF, FPDF, Dompdf y mPDF. Conocerás sus características, fortalezas y obtendrás ejemplos de código para cada una.
1. FPDF — clásico ligero y rápido
FPDF es, probablemente, la biblioteca más conocida para generar PDF en PHP. No requiere extensiones externas, funciona "de fábrica" y destaca por su alta velocidad. Su principal desventaja es el soporte limitado para estilos CSS complejos y HTML.
Ejemplo de creación de un informe PDF simple con tabla:
<?phprequire_once('fpdf.php');
$pdf = new FPDF();$pdf->AddPage();$pdf->SetFont('Arial', 'B', 16);$pdf->Cell(40, 10, 'Informe de ventas');$pdf->Ln(20);
$pdf->SetFont('Arial', '', 12);// Encabezados de tabla$pdf->Cell(60, 7, 'Producto', 1);$pdf->Cell(30, 7, 'Cantidad', 1);$pdf->Cell(40, 7, 'Precio', 1);$pdf->Ln();
// Datos$items = [ ['Portátil', 5, 45000], ['Ratón', 10, 1200], ['Teclado', 7, 2500]];
foreach ($items as $item) { $pdf->Cell(60, 7, $item[0], 1); $pdf->Cell(30, 7, $item[1], 1); $pdf->Cell(40, 7, $item[2] . ' RUB', 1); $pdf->Ln();}
$pdf->Output();?>Cuándo usarlo: para informes simples donde no se necesita maquetación compleja, y la velocidad y el tamaño pequeño del archivo son importantes.
2. TCPDF — herramienta potente para PDF complejos
TCPDF es un fork de FPDF con capacidades ampliadas. Soporta Unicode, JPEG2000, códigos QR, SVG, así como trabajo con HTML y CSS (de forma limitada). La biblioteca se desarrolla activamente y se utiliza en sistemas como Drupal y Moodle.
Ejemplo de generación de informe usando marcado HTML:
<?phprequire_once('tcpdf/tcpdf.php');
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);$pdf->SetCreator(PDF_CREATOR);$pdf->SetAuthor('Su empresa');$pdf->SetTitle('Informe mensual');
$pdf->AddPage();$html = '<h2>Informe mensual</h2><table border="1" cellpadding="5"> <tr style="background-color:#cccccc;"> <th>Indicador</th><th>Valor</th> </tr> <tr> <td>Ingresos</td><td>1 200 000 RUB</td> </tr> <tr> <td>Gastos</td><td>850 000 RUB</td> </tr> <tr> <td>Beneficio</td><td><strong>350 000 RUB</strong></td> </tr></table><p>Fecha de generación: ' . date('d.m.Y') . '</p>';
$pdf->writeHTML($html, true, false, true, false, '');$pdf->Output('report.pdf', 'I');?>Cuándo usarlo: para documentos complejos con tablas, imágenes, fuentes no estándar y soporte para cirílico.
3. Dompdf — convertimos HTML a PDF
Dompdf es una biblioteca que renderiza una página HTML a PDF. Soporta CSS2.1 y parcialmente CSS3, lo que permite crear informes utilizando maquetación familiar. Es ideal para convertir plantillas HTML ya preparadas.
Ejemplo de creación de informe a partir de una plantilla HTML:
<?phprequire_once 'dompdf/autoload.inc.php';use Dompdf\\Dompdf;
$dompdf = new También en la biblioteca
Quartz.NET para C# (.NET): Guía completa con ejemplos prácticos
Aprendizaje automático en C# (.NET): revisión de bibliotecas y herramientas
Migraciones de bases de datos en Java: descripción general de herramientas populares
Generación de PDF en Swift (iOS/macOS): resumen de herramientas y ejemplos