Generación de PDF en TypeScript: reseña de bibliotecas y herramientas
La creación de documentos PDF es una de las tareas frecuentes en el desarrollo web. TypeScript, gracias a su tipado estricto y capacidades modernas, permite escribir código fiable para generar PDF tanto en el cliente como en el servidor. En este artículo, revisaremos bibliotecas y herramientas populares para la generación de PDF en TypeScript, sus características y ejemplos de uso.
1. PDFKit — potente biblioteca para servidor
PDFKit es una de las bibliotecas más populares para crear PDF en Node.js. Proporciona control total sobre la estructura del documento, admite fuentes, imágenes, anotaciones y gráficos vectoriales. PDFKit funciona en el servidor y es ideal para generar informes complejos, facturas o certificados.
Instalación y ejemplo:
npm install pdfkit @types/pdfkitimport PDFDocument from 'pdfkit';import * as fs from 'fs';
const doc = new PDFDocument();
doc.pipe(fs.createWriteStream('output.pdf'));
doc.fontSize(25).text('¡Hola, mundo!', 100, 100);doc.fontSize(12).text('Este es un PDF generado con PDFKit y TypeScript.', 100, 150);
doc.end();PDFKit es ideal para:
- Crear PDF en el servidor (Express, NestJS)
- Trabajar con fuentes personalizadas y codificaciones (incluyendo cirílico)
- Añadir imágenes, tablas y primitivas gráficas
2. jsPDF — generación de PDF en el cliente
jsPDF es una biblioteca del lado del cliente para crear PDF directamente en el navegador. Es fácil de usar, admite texto, imágenes, anotaciones y formas básicas. Para TypeScript, los tipos están disponibles a través de DefinitelyTyped.
Instalación:
npm install jspdf @types/jspdfEjemplo de generación de PDF en el navegador:
import { jsPDF } from 'jspdf';
const doc = new jsPDF();
doc.text('¡Hola, TypeScript!', 10, 10);doc.text('Este es un PDF creado en el navegador.', 10, 20);
doc.save('document.pdf');jsPDF es adecuado para:
- Descargar PDF desde el lado del cliente (informes, recibos)
- Documentos simples sin maquetación compleja
- Prototipado rápido
3. Puppeteer — generación desde HTML
Puppeteer es una biblioteca para controlar el navegador Chrome/Chromium. Permite convertir páginas HTML en PDF conservando completamente los estilos, fuentes y maquetación. Es ideal para crear documentos complejos, informes y tarjetas de presentación.
Instalación:
npm install puppeteerEjemplo de conversión de HTML a PDF:
import puppeteer from 'puppeteer';
async function generatePDF(html: string, outputPath: string): Promise<void> { const browser = await puppeteer.launch(); const page = await browser.newPage();
await page.setContent(html, { waitUntil: 'networkidle0' }); await page.pdf({ path: outputPath, format: 'A4' });
await browser.close();}
// Usoconst htmlContent = `<h1 style="color: blue;">Título</h1><p>Texto con estilos HTML</p>`;generatePDF(htmlContent, 'output.pdf');Puppeteer es ideal para:
- Convertir plantillas HTML complejas a PDF
- Crear PDF con estilos CSS, Flexbox, Grid
- Generar PDF en el servidor con control total de la apariencia
4. pdf-lib — biblioteca ligera y rápida
pdf-lib es una biblioteca moderna para crear y modificar documentos PDF sin dependencias externas. Funciona tanto en Node.js como en el navegador. Admite fuentes, imágenes, formularios y anotaciones.
Instalación:
npm install pdf-lib\ También en la biblioteca
Planificador de tareas en TypeScript: guía detallada de la biblioteca node-schedule
Biblioteca estándar de Kotlin: revisión completa y ejemplos
Envío de SMS en PHP: Biblioteca API para integración
node-cache: Caché simple y eficiente en Node.js
Migraciones de bases de datos en Rust: revisión de herramientas Diesel, SeaORM y sqlx