Generación de PDF en TypeScript: bibliotecas y herramientas para Node.js

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: 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/pdfkit


import 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/jspdf


Ejemplo 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 puppeteer


Ejemplo 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
\

Recommendations