Generación de informes PDF en PHP: revisión de bibliotecas y herramientas

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

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

Recommendations