Generación de PDF en TypeScript: 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 PDF en TypeScript: revisión de herramientas



La generación de documentos PDF es una de las tareas comunes en el desarrollo web. Gracias a TypeScript y a potentes bibliotecas, puede crear informes complejos, facturas, certificados y otros documentos directamente en el navegador o en el servidor (Node.js). En este artículo, revisaremos las principales bibliotecas para trabajar con PDF en TypeScript, sus características y ejemplos de uso.



1. jsPDF — biblioteca ligera y popular



jsPDF es una de las bibliotecas más comunes para crear PDF en el lado del cliente. Permite generar documentos directamente en el navegador usando solo JavaScript/TypeScript. La biblioteca admite texto, imágenes, tablas y formato básico.



Instalación

npm install jspdf @types/jspdf


Ejemplo: creación de un PDF simple

import { jsPDF } from 'jspdf';

const doc = new jsPDF();doc.text('¡Hola, mundo!', 10, 10);doc.save('document.pdf');


Ventajas y desventajas

  • ✅ Facilidad de uso
  • ✅ Funciona en el navegador y Node.js (con módulos adicionales)
  • ❌ Soporte limitado para diseños complejos
  • ❌ Difícil trabajar con tablas (requiere configuración manual)


2. PDFKit — potente herramienta para generación en servidor



PDFKit es una biblioteca para Node.js que proporciona control total sobre la creación de PDF. Es ideal para la generación en servidor de documentos complejos: informes, facturas, folletos. Admite fuentes, degradados, gráficos vectoriales y documentos de varias páginas.



Instalación

npm install pdfkit @types/pdfkit


Ejemplo: creación de PDF con texto e imagen

import PDFDocument from 'pdfkit';import fs from 'fs';

const doc = new PDFDocument();doc.pipe(fs.createWriteStream('output.pdf'));

doc.fontSize(25).text('Título', 100, 100);doc.image('path/to/image.png', 100, 150, { width: 200 });doc.end();


Ventajas y desventajas

  • ✅ Flexibilidad y control total
  • ✅ Soporte para gráficos complejos
  • ❌ No funciona en el navegador (solo Node.js)
  • ❌ API más compleja en comparación con jsPDF


3. Puppeteer — generación de HTML a PDF



Puppeteer es una biblioteca para controlar el navegador Chrome sin interfaz gráfica. Permite convertir páginas HTML en PDF, lo cual es útil si ya tiene el diseño del documento (por ejemplo, una factura o informe). Es adecuado tanto para generación en cliente como en servidor.



Instalación

npm install puppeteer


Ejemplo: generación de PDF desde HTML

import puppeteer from 'puppeteer';

async function generatePDF() { const browser = await puppeteer.launch(); const page = await browser.newPage(); await page.setContent('<h1>¡Hola, PDF!</h1><p>Este es un informe.</p>'); await page.pdf({ path: 'report.pdf', format: 'A4' }); await browser.close();}

generatePDF();


Ventajas y desventajas

  • ✅ Uso completo de CSS y HTML
  • ✅ Soporte para diseños y estilos complejos
  • ❌ Requiere instalar Chrome (gran tamaño)
  • ❌ Más lento que las bibliotecas especializadas


4. pdfmake — generación basada en estructura JSON



pdfmake es una biblioteca que utiliza un enfoque declarativo: usted describe la estructura del documento en JSON y la biblioteca construye el PDF por sí misma. Es ideal para crear tablas, listas e informes.



Instalación

npm install pdfmake @types/pdfmake


Ejemplo: creación de PDF con tabla

import pdfMake from 'pdfmake/build/pdfmake';import pdfFonts from 'pdfmake/build/vfs_fonts';

pdfMake.vfs = pdfFonts.pdfMake.vfs;

const docDefinition = { content: [ { text: 'Informe'

Recommendations