Pruebe en producción sin marcas de agua.
Funciona donde lo necesite.
Obtén 30 días de producto totalmente funcional.
Ténlo en funcionamiento en minutos.
Acceso completo a nuestro equipo de asistencia técnica durante la prueba del producto
Este tutorial profundizará en el SDK de JavaScript de IronPDF y PDFKit, dos grandes nombres en las bibliotecas de PDF para JavaScript. Ambos son opciones sólidas para proyectos Node.js, pero tienen sus puntos fuertes y débiles.
El propósito de este artículo es dar a los lectores una idea real de cómo las herramientas IronPDF y PDFKit pueden encajar en el flujo de trabajo Node.js de un desarrollador. Ya sea que estés creando PDFs básicos o manejando diseños complicados, entender lo que IronPDF y PDFKit pueden (y no pueden) hacer es muy importante.
PDFKit es una biblioteca JavaScript avanzada de generación de PDF para Node.js y entornos de navegador. Su completo conjunto de herramientas lo hace ideal para crear documentos imprimibles de varias páginas con facilidad. La biblioteca se ha diseñado para que sea fácil de usar y agilice el proceso de generación de documentos complejos.
PDFKit destaca por sus potentes funciones de gráficos vectoriales, amplias opciones de estilo de texto y fuentes, funciones de incrustación de imágenes y compatibilidad con documentos PDF interactivos y seguros. Su facilidad de uso, combinada con su versatilidad tanto para entornos de servidor como de navegador, lo convierten en una valiosa herramienta para los desarrolladores que necesitan generar PDF personalizados en una gran variedad de aplicaciones.
Generación Flexible de PDF
PDFKit no se basa en la conversión de HTML a PDF; en cambio, genera PDF directamente mediante código JavaScript. Este enfoque proporciona a los desarrolladores un control preciso sobre el diseño, el estilo y el contenido de los archivos PDF que crean, por lo que generar documentos complejos es más fácil.
Gráficos y Formateo de Texto
La biblioteca admite funciones gráficas avanzadas, como líneas, curvas, rectángulos, círculos, etc. Las funciones de formato de texto, como fuentes, tamaños y colores personalizados, permiten crear documentos visualmente atractivos.
Inserción de imágenes y gráficos vectoriales
PDFKit permite incrustar imágenes en varios formatos y admite gráficos vectoriales, por lo que es ideal para documentos impresos de alta calidad. La incrustación de imágenes admite archivos JPEG y PNG.
Funciones avanzadas de documentos
Los desarrolladores pueden añadir anotaciones, marcadores e hipervínculos a sus PDF. La biblioteca también admite la creación de encabezados y pies de página, así como la inclusión de números de página y JavaScript personalizado.
Componentes Personalizables y Reutilizables
La API de PDFKit facilita la creación de componentes reutilizables, agilizando el proceso de desarrollo de documentos con estructuras repetitivas, como facturas o informes.
Gráficos vectoriales
PDFKit ofrece una API similar al lienzo HTML5 para gráficos vectoriales, que incluye operaciones de trazado, análisis sintáctico de trazados SVG, transformaciones y degradados. Es ideal para crear gráficos escalables y de alta calidad en PDF. La biblioteca admite el ajuste de líneas, varias alineaciones de texto y listas con viñetas.
Fuentes incrustadas
PDFKit es compatible con una amplia gama de formatos de fuentes como TrueType, OpenType, WOFF, etc., lo que permite una tipografía coherente en los PDF. El subconjunto de fuentes también está disponible, lo que garantiza que el tamaño del documento siga siendo manejable.
Con IronPDF, puede convertir fácilmente cadenas HTML, archivos o incluso páginas web enteras en PDF con el mismo aspecto que el contenido original, con estilos CSS e imágenes. Esto es crucial para entregar documentos de calidad profesional, como facturas, contratos e informes, que deben conservar la marca y el diseño especificados en los diseños web.
IronPDF destaca en la conversión de contenidos HTML en documentos PDF de alta fidelidad. Sus capacidades incluyen:
IronPDF proporciona completas herramientas de formato que permiten personalizar y mejorar los PDF creados a partir de contenido HTML, como:
Las capacidades de edición de IronPDF son amplias y permiten modificar los PDF existentes para adaptarlos a necesidades específicas:
IronPDF soporta la creación y manipulación de formularios PDF, permitiendo elementos interactivos dentro del PDF:
Formularios PDF: Esto incluye la creación de formularios que pueden ser completados digitalmente, lo que permite a las empresas automatizar el proceso de recopilación de datos. Con IronPDF, puede crear formularios mediante programación, rellenar campos e incluso recuperar información, lo que agiliza los flujos de trabajo y reduce la introducción manual de datos.
IronPDF es compatible con varias plataformas, lo que lo hace versátil para distintos entornos de desarrollo. Es compatible con Node.js versión 12.0 y superiores y puede utilizarse en Windows, Linux, Mac y Docker.
Antes de sumergirse en el mundo de la generación de PDF, debe configurar el entorno de su proyecto. Visual Studio Code (VS Code) proporciona una plataforma ideal y fácil de usar para esto. Para empezar, inicie VS Code y cree un nuevo proyecto JavaScript. Puede hacerlo creando una nueva carpeta para su proyecto y abriéndola en VS Code. Este entorno será donde escribirás tu código y gestionarás los archivos de tu proyecto.
Una vez abierta la carpeta en VS Code, el siguiente paso es inicializar un nuevo proyecto JavaScript. Abre el terminal integrado en VS Code (normalmente se encuentra bajo Terminal > New Terminal en el menú) y escribe npm init
. Este comando te guiará a través de la creación de un archivo package.json
, que es crucial para gestionar las dependencias y metadatos de tu proyecto.
Una vez configurado el proyecto JavaScript, es hora de instalar la biblioteca IronPDF. En su terminal VS Code, ejecute el siguiente comando:
npm install ironpdf
npm install ironpdf
Este comando busca e instala la biblioteca IronPDF, añadiéndola a las dependencias de su proyecto.
Después de la instalación, asegúrate de que IronPDF esté listado en tu archivo package.json
bajo la sección de dependencias. Esto garantiza que IronPDF se integre correctamente en su proyecto, allanando el camino para la generación y manipulación de PDF sin problemas.
El siguiente paso es PDFKit, una robusta y versátil biblioteca de generación de documentos PDF. Para añadir PDFKit a su proyecto, ejecute el siguiente comando en su terminal dentro de VS Code:
npm install pdfkit
npm install pdfkit
Esto instalará PDFKit y lo añadirá a las dependencias de su proyecto.
Una vez completada la instalación con éxito, verifica que PDFKit aparezca en las dependencias de tu archivo package.json. Esta confirmación es crucial para confirmar que tu proyecto ahora está equipado con las herramientas necesarias para crear archivos PDF complejos, detallados y visualmente atractivos.
IronPDF for Node.js destaca en la conversión de HTML a PDF, ofreciendo una solución eficaz para los desarrolladores. Esta biblioteca es experta en tareas complejas como la representación de estilos CSS, la ejecución de JavaScript y la incorporación de encabezados y pies de página personalizados. Estas funcionalidades mejoran significativamente su capacidad para crear PDF de calidad profesional a partir de fuentes HTML. IronPDF for Node.js proporciona tres métodos convenientes para este proceso de conversión:
Cadena HTML a PDF
Archivo HTML a PDF
Este método permite a los desarrolladores convertir directamente cadenas de código HTML en archivos PDF. Esta función es increíblemente útil para escenarios que implican la generación de contenidos dinámicos. Tanto si está creando informes personalizados, generando facturas sobre la marcha o necesita presentar contenido basado en datos en un formato pulido y profesional, esta función simplifica el proceso.
import { PdfDocument, PdfGenerator } from "@ironsoftware/ironpdf";
import { IronPdfGlobalConfig } from "@ironsoftware/ironpdf";
import fs from "fs";
(async function createPDFs() {
try {
// Input the license key
const IronPdfConfig = {
licenseKey: "Your-License-Key",
};
// Set the config with the license key
IronPdfGlobalConfig.setConfig(IronPdfConfig);
// Create a PDF from the HTML String
const pdf = await PdfDocument.fromHtml(
"<h1>Hello JavaScript Developers! This is an Example PDF created with IronPDF NodeJS!</h1>"
);
// Save the PDF document to the file system.
await pdf.saveAs("HtmlStringToPDF.pdf");
} catch (error) {
// Handle errors here
console.error("An error occurred:", error);
}
})();
javascript
Aquí puedes ver la salida del código:
Con esta función, los desarrolladores pueden convertir archivos HTML existentes en PDF. Esta funcionalidad es especialmente beneficiosa para manejar documentos HTML estáticos. Tanto si trabaja con páginas web prediseñadas, formularios estandarizados o folletos informativos, esta función le ofrece una forma sencilla de convertirlos en PDF.
import { PdfDocument } from "@ironsoftware/ironpdf";
import { IronPdfGlobalConfig } from "@ironsoftware/ironpdf";
import fs from "fs";
(async function createPDFs() {
try {
// Input the license key
const IronPdfConfig = {
licenseKey: "Your-License-Key",
};
// Set the config with the license key
IronPdfGlobalConfig.setConfig(IronPdfConfig);
// Create a PDF from the HTML File"
const pdf = await PdfDocument.fromFile("invoice.html");
// Save the PDF document to the file system.
await pdf.saveAs("invoice.pdf");
} catch (error) {
// Handle errors here
console.error("An error occurred:", error);
}
})();
javascript
Aquí está el PDF de la factura de salida generada:
Esta función permite convertir páginas web en PDF simplemente utilizando sus URL. Esta funcionalidad es especialmente útil para capturar contenidos en directo y en línea. Ya sea para archivar páginas web, crear copias sin conexión de artículos en línea o generar informes a partir de datos basados en la web, esta función se encarga de todo sin esfuerzo.
import { PdfDocument } from "@ironsoftware/ironpdf";
import { IronPdfGlobalConfig } from "@ironsoftware/ironpdf";
import fs from "fs";
(async function createPDFs() {
try {
// Input the license key
const IronPdfConfig = {
licenseKey: "Your-License-Key",
};
// Set the config with the license key
IronPdfGlobalConfig.setConfig(IronPdfConfig);
// URL of the web page to convert to PDF
const url = "https://en.wikipedia.org/wiki/PDF";
// Convert the Web Page to a pixel-perfect PDF file.
const urlPDF = await PdfDocument.fromUrl(url);
// Save the document.
await urlPDF.saveAs("UrlToPdf.pdf");
} catch (error) {
// Handle errors here
console.error("An error occurred:", error);
}
})();
javascript
Aquí está el archivo PDF de salida generado a partir de la URL:
PDFKit, aunque no está diseñado principalmente para la conversión de HTML a PDF como IronPDF, ofrece una forma de crear documentos PDF mediante programación directamente desde código JavaScript. A continuación se muestra un ejemplo de cómo crear un archivo PDF sencillo:
const PDFDocument = require('pdfkit');
const fs = require('fs');
let doc = new PDFDocument();
doc.pipe(fs.createWriteStream('output.pdf'));
doc.fontSize(25)
.text('PDFKit - Text to PDF Example', 100, 100);
doc.end();
javascript
Este fragmento de código crea un archivo PDF con un encabezado de texto. Aunque PDFKit no convierte HTML a PDF directamente, permite un control detallado de la colocación y el formato del texto.
Este es el archivo de salida generado por PDFKit:
Contraseñas, Seguridad y Metadatos: IronPDF permite a los desarrolladores fortalecer la seguridad de sus archivos PDF a través de diversas características. Permite establecer contraseñas, lo que añade una capa adicional de protección que obliga a los usuarios a introducir una contraseña para ver el documento. Además, IronPDF ofrece la posibilidad de incrustar metadatos en el PDF, que pueden incluir información sobre el autor, títulos y palabras clave, mejorando así la gestión y organización de los documentos.
import {PdfDocument} from "@ironsoftware/ironpdf";
(async () => {
// Import a PDF document or create a new PDF from Html
const pdf = await PdfDocument.open("encrypted.pdf", "password");
// Create an empty Map
const newMetadata = new Map();
// Add key-value pairs of metadata
newMetadata.set("Author", "Satoshi Nakamoto");
newMetadata.set("Keywords", "SEO, Friendly");
await pdf.overrideMetadata(newMetadata);
await pdf.removePasswordsAndEncryption();
// Make PDF read-only
await pdf.makePdfDocumentReadOnly("secret-key");
// Configure permissions
const permissions = {
AllowAnnotations: false,
AllowExtractContent: false,
AllowFillForms: false,
AllowPrint: true,
};
await pdf.setPermission(permissions);
// Change or set the document encrpytion password
await pdf.saveAs("secured.pdf", {
ownerPassword: "top-secret",
userPassword: "my-password",
});
})();
javascript
Cifrado y Descifrado de PDF: El cifrado y descifrado son componentes vitales de la seguridad de documentos, y IronPDF los maneja con facilidad. Ofrece distintos niveles de cifrado, desde la simple protección mediante contraseña hasta estándares de cifrado avanzados, lo que garantiza que la información sensible permanezca segura. La función de descifrado es igual de sólida, ya que proporciona a los usuarios autorizados los medios para acceder a los documentos cifrados y modificarlos.
Firmas Digitales: En la era de la documentación digital, la autenticidad y la integridad son primordiales. La funcionalidad de firmas digitales de IronPDF permite a los usuarios firmar sus PDFs digitalmente, lo que no solo verifica la identidad del originador del documento, sino que también indica que el documento no ha sido alterado desde que se aplicó la firma, asegurando así su autenticidad.
import {PdfDocument} from "@ironsoftware/ironpdf";
(async () => {
// Step 1. Import a PDF
const pdf = await PdfDocument.open("sample.pdf");
// Step 2. Sign the PDF with digital certificate
await pdf.signDigitalSignature({
certificatePath: "IronSoftware.pfx",
certificatePassword: "123456",
signingReason: "To show how to sign a PDF",
signingLocation: "Chicago, USA",
signatureImage: {
SignatureImagePath: "logo.png"
}
});
//Step 3. The PDF is not signed until saved to file.
await pdf.saveAs("signed.pdf");
})();
javascript
Compresión de PDF: IronPDF reconoce la necesidad de un almacenamiento eficiente y un rápido intercambio de documentos. Incluye una función de compresión de PDF que reduce significativamente el tamaño de los archivos, lo cual es crucial para optimizar el espacio de almacenamiento y agilizar la transmisión de documentos sin comprometer la calidad e integridad del contenido dentro de los PDFs.
import {PdfDocument} from "@ironsoftware/ironpdf";
(async () => {
// Load the existing PDF document
const pdf = await PdfDocument.fromFile("my-content.pdf");
// Compress images with quality parameter (1-100)
await pdf.compressSize(60);
// Save the compressed PDF
await pdf.saveAs("document_compressed.pdf");
// Compress images and scale down based on visible size in the PDF document
await pdf.compressSize(90, true);
// Save the scaled and compressed PDF
await pdf.saveAs("document_scaled_compressed.pdf");
});
javascript
Combinar dos o más PDFs: IronPDF ofrece una solución sencilla para combinar múltiples documentos PDF en un solo archivo. Esta función es increíblemente útil para combinar varios documentos, como informes, contratos o series de formularios, lo que facilita una mejor gestión y distribución de los documentos.
Eliminar páginas específicas de un PDF: La flexibilidad en la edición es clave para cualquier herramienta PDF, y IronPDF ofrece la posibilidad de eliminar páginas específicas de un documento PDF. Esto resulta especialmente útil a la hora de adaptar el contenido a distintos públicos u omitir páginas innecesarias para crear un documento más conciso.
Motor de diseño personalizable: PDFKit cuenta con un motor de diseño personalizable que ofrece a los desarrolladores control sobre todos los aspectos del diseño del PDF, desde la posición del texto hasta elementos gráficos complejos.
const PDFDocument = require('pdfkit');
const fs = require('fs');
let doc = new PDFDocument({ margin: 50 });
// Custom layouts
doc.text('Customized Layout Text', {
align: 'center',
valign: 'center'
});
doc.end();
doc.pipe(fs.createWriteStream('custom-layout.pdf'));
javascript
En este ejemplo, PDFDocument
se utiliza para crear un diseño personalizado con texto centrado.
Características avanzadas de gráficos y texto: PDFKit ofrece características avanzadas de gráficos y texto, lo que permite un diseño y estilo intrincado dentro de archivos PDF. Permite dibujar formas y añadir imágenes y SVG. En lo que se refiere al texto, PDFKit ofrece un conjunto completo de opciones de diseño, desde cuadros de texto básicos hasta controles tipográficos avanzados, que garantizan que el diseño de cada página sea exactamente el previsto.
const PDFDocument = require('pdfkit');
const fs = require('fs');
let doc = new PDFDocument();
// Advanced graphics
doc.moveTo(100, 150)
.lineTo(100, 250)
.lineTo(200, 250)
.fill("#FF3300");
// Advanced text
doc.fontSize(15)
.font('Times-Roman')
.text('Advanced Text Features', 100, 300);
doc.end();
doc.pipe(fs.createWriteStream('advanced-graphics-text.pdf'));
javascript
Manejo de Flujos y Buffers: PDFKit sobresale en el manejo de flujos y buffers, lo que permite una gestión eficiente de archivos PDF grandes y sus datos.
const PDFDocument = require('pdfkit');
const fs = require('fs');
const stream = require('stream');
let doc = new PDFDocument();
let buffers = [];
let writableStream = new stream.Writable();
writableStream._write = (chunk, encoding, done) => {
buffers.push(chunk);
done();
};
doc.pipe(writableStream);
doc.text('Streaming PDF Content');
doc.end();
writableStream.on('finish', () => {
let pdfData = Buffer.concat(buffers);
fs.writeFileSync('streamed.pdf', pdfData);
});
javascript
Encabezados y pies de página personalizables: Crear un PDF con apariencia profesional implica prestar atención a los detalles. La función de encabezados y pies de página personalizables de PDFKit permite colocar con precisión texto y gráficos en la parte superior e inferior de las páginas. Esto resulta especialmente útil para añadir una marca coherente, títulos de documentos y paginación en un documento de varias páginas.
Formularios Interactivos: PDFKit extiende sus capacidades a los formularios interactivos dentro de sus archivos PDF, permitiendo la creación de campos de texto, casillas de verificación y botones de opción. Esta función tiene un valor incalculable para los usuarios que buscan recopilar información o proporcionar contenido interactivo, mejorando la experiencia de usuario y la funcionalidad del PDF.
La documentación de IronPDF ofrece una guía completa para usar la biblioteca, con ejemplos detallados de características clave como renderizar una URL como PDF y crear un PDF a partir de una cadena HTML. Ofrece opciones de personalización para la impresión de PDF, como la configuración del tamaño del papel y los PPP, y para el aspecto de los documentos, como encabezados y pies de página con campos de combinación de correspondencia. La documentación también cubre aspectos más avanzados como el uso de WebClients personalizados, la creación de formularios PDF editables y el trabajo con JavaScript dentro de los PDF. Puede consultar la documentación completa de la API y más ejemplos.
Para establecer encabezados y pies de página, tanto las opciones HTML como las de texto están bien documentadas, lo que permite fusionar metadatos utilizando cadenas de marcadores de posición. Se proporcionan detalles sobre la licencia, que orientan a los usuarios sobre cómo eliminar las marcas de agua y obtener la licencia. La documentación proporciona incluso información sobre la configuración del número de la primera página para los encabezados y pies de página de PDF e incluye detalles sobre cuánto tiempo se debe esperar después de la renderización HTML antes de imprimir, teniendo en cuenta la renderización de JavaScript, AJAX o animaciones.
IronPDF cuenta con una colección de guías de solución de problemas que abordan los problemas más comunes y ofrecen soluciones paso a paso. Puede ser la primera parada para los usuarios que intentan resolver un problema. Para cuestiones más complejas o que no puedan resolverse mediante guías, IronPDF ofrece asistencia técnica. Los usuarios pueden enviar una solicitud de asistencia técnica que puede incluir el suministro de información detallada sobre el problema, como detalles sobre la plataforma o el tiempo de ejecución, para ayudar al equipo de asistencia a reproducir y resolver el problema. También puede utilizar la opción de chat en directo.
La documentación npm de PDFKit describe la biblioteca como una herramienta para crear fácilmente documentos complejos, de varias páginas e imprimibles. Hace hincapié en la encadenabilidad de su API e incluye tanto funciones de bajo nivel como abstracciones para funcionalidades de nivel superior, diseñadas para ser lo suficientemente sencillas como para que generar documentos complejos pueda ser tan simple como unas pocas llamadas a funciones.
La sección de características de la documentación es muy completa y abarca gráficos vectoriales, texto, incrustación de fuentes, incrustación de imágenes, anotaciones, creación de formularios, esquemas y seguridad de PDF, todo lo cual demuestra la capacidad de la biblioteca para crear documentos accesibles y seguros.
PDFKit, al ser una biblioteca de código abierto, se beneficia del apoyo de la comunidad. Los problemas y las solicitudes de funciones pueden gestionarse a través de su repositorio de GitHub, donde los usuarios pueden contribuir al código, enviar problemas y hacer pull requests. La comunidad en torno a PDFKit también puede ofrecer canales de asistencia no oficiales como Stack Overflow, donde los desarrolladores suelen compartir sus conocimientos y soluciones.
IronPDF funciona con un modelo de licencia comercial, lo que significa que los desarrolladores o las empresas deben adquirir una licencia para utilizar la biblioteca en sus proyectos sin limitaciones.
Lite: Con un precio de $749, esta tarifa única ofrece un paquete básico adecuado para proyectos más pequeños.
Professional: A $1,499, este nivel está destinado al uso profesional, ofreciendo más funciones y capacidades.
Unlimited: El nivel ilimitado tiene un precio de $2,999 y es ideal para implementaciones a gran escala, proporcionando acceso completo a todas las funciones sin restricciones.
IronPDF también ofrece una versión de prueba gratuita, permitiendo a los desarrolladores evaluar la biblioteca antes de realizar una compra. No hay versión gratuita ni freemium, y no se ofrecen servicios premium de consultoría o integración.
PDFKit es una biblioteca de código abierto disponible bajo la licencia MIT. Esta licencia permisiva permite el libre uso, modificación y distribución del software. Al ser un proyecto de código abierto, PDFKit no tiene una estructura de precios. Puede incorporarse libremente a cualquier proyecto, y los usuarios pueden contribuir a su desarrollo a través de GitHub. El proyecto acepta donaciones, que no son obligatorias, pero apoyan el desarrollo y mantenimiento continuos de la biblioteca.
En conclusión, tanto IronPDF for Node.js como PDFKit son potentes herramientas para la generación y manipulación de PDF en sus respectivos entornos, aunque IronPDF for Node.js tiene ventaja gracias a su amplio conjunto de funciones adaptadas a la plataforma Node.js.
Las capacidades de IronPDF para convertir HTML en PDF, la edición avanzada y la compatibilidad integral con JavaScript y otros medios enriquecidos lo convierten en una solución versátil para una amplia gama de tareas de procesamiento de PDF. Además, IronPDF se centra en la seguridad y su documentación detallada proporciona un nivel de garantía y accesibilidad que es crucial para los desarrolladores.
PDFKit, al ser de código abierto, ofrece una flexibilidad y facilidad de uso que pueden resultar muy atractivas para los desarrolladores que prefieren un amplio apoyo de la comunidad y la posibilidad de modificar el código fuente. Sus capacidades son impresionantes, sobre todo teniendo en cuenta las ventajas económicas de una solución de código abierto.
IronPDF ofrece una versión de prueba gratuita que permite a los desarrolladores evaluar todas sus funciones antes de comprometerse económicamente. Además, la Iron Suite de Iron Software, que incluye IronPDF entre otras valiosas herramientas para desarrolladores como IronXL, IronBarcode, IronQR y IronOCR, presenta una oferta económica, ofreciendo un conjunto completo de funcionalidades por el precio de dos productos.
En última instancia, la elección entre IronPDF for Node.js y PDFKit dependerá de las exigencias particulares del proyecto y de las preferencias del desarrollador o del equipo de desarrollo. IronPDF for Node.js es la elección perfecta para quienes buscan un conjunto de funciones completo y una documentación exhaustiva dentro del ecosistema Node.js.