Generación de informes PDF en PHP: revisión de bibliotecas y ejemplos de código

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: guía completa para el desarrollador



La creación de documentos PDF es una de las tareas más demandadas en el desarrollo web. Informes, facturas, certificados, materiales educativos: todo esto a menudo necesita generarse dinámicamente en el lado del servidor. PHP ofrece varias bibliotecas potentes que permiten crear PDF de cualquier complejidad. En este artículo, analizaremos cuatro herramientas populares: TCPDF, FPDF, Dompdf y mPDF, y también proporcionaremos ejemplos prácticos de código.



¿Por qué es necesaria la generación de PDF en PHP?

PDF (Portable Document Format) es un formato universal que se muestra correctamente en cualquier dispositivo. En proyectos educativos, como PythonLib, los informes PDF se pueden utilizar para:

  • Exportar resultados de pruebas y exámenes
  • Crear certificados de finalización de cursos
  • Generar materiales de estudio y apuntes
  • Elaborar informes estadísticos para profesores


Revisión de bibliotecas populares



1. TCPDF

TCPDF es una de las bibliotecas más potentes y maduras para trabajar con PDF en PHP. Soporta:

  • Conjunto completo de funciones de PDF 1.7
  • Incrustación de fuentes (incluyendo Unicode y cirílico)
  • Dibujo de gráficos, tablas, códigos QR
  • Soporte de CSS (limitado)

Ejemplo de uso básico:

require_once('tcpdf/tcpdf.php');

$pdf = new TCPDF('P', 'mm', 'A4', true, 'UTF-8', false);$pdf->SetCreator('PythonLib');$pdf->SetAuthor('Desarrollador');$pdf->SetTitle('Informe de prueba');

$pdf->AddPage();$pdf->SetFont('dejavusans', '', 14);$pdf->Cell(0, 10, '¡Hola, mundo! Este es un informe PDF.', 0, 1, 'C');

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


2. FPDF

FPDF es una biblioteca ligera y rápida, ideal para documentos simples. Sus principales características:

  • No requiere dependencias externas
  • API simple para agregar texto, imágenes y líneas
  • Soporte UTF-8 a través de paquetes adicionales

Ejemplo de creación de tabla:

require('fpdf/fpdf.php');

$pdf = new FPDF();$pdf->AddPage();$pdf->SetFont('Arial', 'B', 16);$pdf->Cell(40, 10, 'Nombre', 1);$pdf->Cell(40, 10, 'Puntos', 1);$pdf->Ln();$pdf->SetFont('Arial', '', 12);$pdf->Cell(40, 10, 'Iván', 1);$pdf->Cell(40, 10, '95', 1);$pdf->Output();


3. Dompdf

Dompdf permite convertir HTML+CSS a PDF. Esto es útil si ya utiliza motores de plantillas (por ejemplo, Twig). Capacidades:

  • Soporte de CSS 2.1 y parcialmente CSS3
  • Trabajo con imágenes y fuentes
  • Integración sencilla con aplicaciones web

Ejemplo con plantilla HTML:

use Dompdf\\Dompdf;

$dompdf = new Dompdf();$html = '<h2 style="color:blue;">Informe del curso Python</h2> <p>Estudiante: Alexéi, resultado: 87%</p>';$dompdf->loadHtml($html, 'UTF-8');$dompdf->setPaper('A4', 'portrait');$dompdf->render();$dompdf->stream('report.pdf');


4. mPDF

mPDF es otra biblioteca para convertir HTML a PDF. Soporta estilos complejos, Unicode, y también:

  • Creación automática de tabla de contenido
  • Marcas de agua y fondos
  • Trabajo con grandes volúmenes de datos

Ejemplo con hoja de estilos:

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

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

Recommendations