PDFKit para JavaScript (Node.js): guía completa con ejemplos

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

¿Qué es PDFKit y para qué sirve?

\n\n

PDFKit es una biblioteca potente y flexible para JavaScript (Node.js), diseñada para la creación programática de documentos PDF «sobre la marcha». Permite a los desarrolladores generar archivos PDF complejos y de varias páginas con contenido enriquecido: texto, imágenes, tablas, gráficos vectoriales, anotaciones y formularios. A diferencia de muchas otras bibliotecas, PDFKit funciona a bajo nivel, brindando control total sobre cada aspecto del documento, desde las coordenadas de ubicación de los elementos hasta la incrustación de fuentes.

\n\n

Principales casos de uso de PDFKit:

\n
    \n
  • Generación de informes y facturas: Creación de documentos PDF dinámicos basados en datos de una base de datos o API.
  • \n
  • Creación de albaranes y recibos: Generación automática de documentos para tiendas en línea y sistemas contables.
  • \n
  • Elaboración de certificados y diplomas: Generación de documentos personalizados con datos únicos para cada destinatario.
  • \n
  • Exportación de datos: Conversión de páginas web, tablas o gráficos a formato PDF para impresión o archivado.
  • \n
  • Creación de libros electrónicos y manuales: Maquetación programática de documentos de varias páginas con tabla de contenido y marcadores.
  • \n
\n\n

PDFKit es la elección de los desarrolladores que necesitan rendimiento, flexibilidad y control total sin usar dependencias externas (por ejemplo, sin necesidad de instalar LibreOffice o wkhtmltopdf).

\n\n

Instalación de PDFKit

\n\n

PDFKit se distribuye a través del gestor de paquetes npm. Para instalarlo, ejecute el siguiente comando en la terminal en la raíz de su proyecto:

\n\n
npm install pdfkit
\n\n

Después de la instalación, la biblioteca estará disponible para importar en su código. No se requieren dependencias adicionales.

\n\n

Inicio rápido: creación del primer documento PDF

\n\n

Vamos a crear un archivo PDF simple con el texto «¡Hola, Mundo!».

\n\n
const PDFDocument = require('pdfkit');\nconst fs = require('fs');\n\n// Creamos un nuevo documento PDF\nconst doc = new PDFDocument();\n\n// Especificamos el flujo para escribir el resultado\ndoc.pipe(fs.createWriteStream('hola_mundo.pdf'));\n\n// Agregamos texto a la página\ndoc.fontSize(25)\n   .text('¡Hola, Mundo!', 100, 100);\n\n// Finalizamos el documento y cerramos el flujo\ndoc.end();\n\nconsole.log('¡Archivo PDF "hola_mundo.pdf" creado exitosamente!');
\n\n

Después de ejecutar este código, en la misma carpeta aparecerá el archivo hola_mundo.pdf con el texto «¡Hola, Mundo!».

\n\n

Métodos y funciones principales de PDFKit

\n\n

PDFKit proporciona una API extensa. A continuación se presentan 10 métodos clave con descripción detallada y ejemplos.

\n\n

1. text(text, x, y, options)

\n

Descripción: Agrega texto al documento. Este es el método principal para trabajar con texto. Admite saltos de línea, alineación, sangrías y estilización.

\n

Parámetros:

\n
    \n
  • text (String) — Texto a agregar.
  • \n
  • x (Number, opcional) — Coordenada X. Si no se especifica, el texto continúa desde la posición actual.
  • \n
  • y (Number, opcional) — Coordenada Y. Si no se especifica, el texto continúa desde la posición actual.
  • \n
  • options (Object, opcional) — Objeto con configuraciones:\n
      \n
    • align (String) — Alineación: 'left', 'center', 'right', 'justify'.
    • \n
    • indent (Number) — Sangría de la primera línea.
    • \n
    • paragraphGap (Number) — Espacio entre párrafos.
    • \n
    • lineGap (Number) — Interlineado.
    • \n
    • width (Number) — Ancho del bloque de texto (para saltos de línea).
    • \n
    • height (Number) — Alto del bloque de texto.
    • \n <

Recommendations