Pruebas en un entorno real
Pruebe en producción sin marcas de agua.
Funciona donde lo necesites.
Cuando Jsdom y IronPDF se combinan en Node.js, los programadores tienen acceso a un amplio conjunto de herramientas para crear y modificar documentos PDF. Una implementación en JavaScript puro del DOM del W3C, denominada Jsdom, permite manipular documentos HTML y XML en el servidor de forma similar a como se hace en un navegador. Por su parte, IronPDF utiliza sencillas API de Node.js para facilitar la creación de PDF de alta calidad a partir de contenido HTML.
La combinación de Jsdom e IronPDF permite a los desarrolladores transformar fácilmente páginas web en PDF dentro de sus aplicaciones Node.js, modificar PDF preexistentes y crear documentos PDF a partir de plantillas HTML sobre la marcha. Esta combinación es una gran opción para proyectos que requieren sólidas capacidades de creación de PDF, ya que no sólo garantiza el cumplimiento de las tecnologías web contemporáneas, sino que también acelera las operaciones de generación de documentos.
Jsdom npm (Gestor de paquetes Node) es unJavaScript node.js es una biblioteca que permite utilizar Node.js para analizar documentos HTML y trabajar con ellos. Ofrece un entorno similar al de un navegador dentro de Node.js y es compatible con el DOM del W3C(Modelo de documento objeto). Como resultado, podrá manipular las características y el contenido de los documentos HTML y XML mediante programación. Incluso puede simular acciones como clics y envíos de formularios.
Jsdom es muy útil para actividades como la creación de informes basados en HTML, la comprobación y verificación de sitios en línea y el web scraping. Al trabajar con páginas HTML en un entorno de servidor, donde las funciones estándar del navegador no están disponibles, ayuda a los desarrolladores. El paquete jsdom npm tiende un puente entre la funcionalidad del navegador del lado del cliente y JavaScript del lado del servidor al manejar la manipulación y la interacción HTML en aplicaciones Node.js.
Jsdom en Node.js es una herramienta útil para los desarrolladores que trabajan en entornos de servidor con documentos HTML y XML. Las características más destacadas de Jsdom son las siguientes:
Jsdom ofrece una completa implementación en javascript de muchas de las especificaciones DOM y HTML del W3C. Esto permite utilizar API DOM bien conocidas para manipular mediante programación documentos HTML y XML.
Dado que Jsdom imita un entorno de navegador dentro de Node.js, se pueden manipular páginas HTML tal y como se haría si JavaScript se estuviera ejecutando en un navegador. Esto abarca el trabajo con el modelo de objetos del documento, la gestión de eventos, la ejecución de secuencias de comandos y el acceso a elementos y su modificación.
Es compatible con los estándares web modernos, incluidos HTML5, CSS3 y las funciones más recientes de JavaScript. Esto garantiza la compatibilidad con la mayoría de los contenidos web y permite manipular y analizar páginas complejas con precisión.
Jsdom puede convertir cadenas HTML en estructuras DOM, y los nodos DOM pueden serializarse de nuevo en cadenas HTML. Esto es para permitir la ejecución de scripts dentro de la página y permitirnos editar, y producir salida HTML actualizada de páginas web.
Jsdom puede configurarse para imitar muchas funciones relacionadas con los navegadores, incluido el procesamiento de recursos externos(como cargar scripts externos y luego ejecutar scripts externos u hojas de estilo)cambio entre distintos motores JavaScript(como V8 o SpiderMonkey)y mucho más.
Jsdom es una herramienta popular para escribir pruebas unitarias y pruebas de integración que incluyen la manipulación del DOM en marcos de pruebas como Jest y Mocha. Permite probar aplicaciones web sin necesidad de un entorno de navegador completo.
Es apropiado para aplicaciones que necesitan cumplir con las normas de accesibilidad, ya que tiene características de accesibilidad como la compatibilidad con lectores de pantalla y soporte para propiedades ARIA.
Jsdom funciona bien con otras bibliotecas y con el ecosistema más amplio de Node.js. Puede utilizarse, por ejemplo, junto con paquetes como Puppeteer para actividades más complejas de raspado web y automatización o con Cheerio para un análisis sintáctico eficaz de HTML.
Los pasos siguientes pueden utilizarse para construir y configurar Jsdom en una aplicación Node.js:
En primer lugar, asegúrate de que npm y Node.js están instalados en tu ordenador. Se puede utilizar Npm para instalar Jsdom:
npm install jsdom
npm install jsdom
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'npm install jsdom
Este es un ejemplo sencillo de configuración de un entorno Jsdom y de trabajo con un documento HTML:
const { JSDOM } = require('jsdom');
// Example HTML content
const htmlContent = `
<!DOCTYPE html>
<html>
<head>
<title>Jsdom Example</title>
</head>
<body>
<div id="content">
<p>Hello, Jsdom!</p>
</div>
</body>
</html>
`;
// Create a Jsdom instances
const dom = new JSDOM(htmlContent);
// Access and manipulate the DOM
const document = dom.window.document;
const contentDiv = document.getElementById('content');
contentDiv.innerHTML = '<p>Hello, modified Jsdom!</p>';
// Serialize the modified DOM back to HTML
const modifiedHtml = dom.serialize();
console.log(modifiedHtml);
const { JSDOM } = require('jsdom');
// Example HTML content
const htmlContent = `
<!DOCTYPE html>
<html>
<head>
<title>Jsdom Example</title>
</head>
<body>
<div id="content">
<p>Hello, Jsdom!</p>
</div>
</body>
</html>
`;
// Create a Jsdom instances
const dom = new JSDOM(htmlContent);
// Access and manipulate the DOM
const document = dom.window.document;
const contentDiv = document.getElementById('content');
contentDiv.innerHTML = '<p>Hello, modified Jsdom!</p>';
// Serialize the modified DOM back to HTML
const modifiedHtml = dom.serialize();
console.log(modifiedHtml);
'INSTANT VB TODO TASK: The following line could not be converted:
const
If True Then
JSDOM } = require( 'jsdom');
' Example HTML content
'INSTANT VB TODO TASK: The following line contains an assignment within expression that was not extracted by Instant VB:
'ORIGINAL LINE: const htmlContent = ` <!DOCTYPE html> <html> <head> <title> Jsdom Example</title> </head> <body> <div id="content"> <p> Hello, Jsdom!</p> </div> </body> </html> `;
const htmlContent = ` <(Not DOCTYPE) html> (Of html) (Of head) (Of title) Jsdom Example</title> </head> (Of body) <div id="content"> (Of p) Hello, Jsdom!</p> </div> </body> </html> `
' Create a Jsdom instances
const dom = New JSDOM(htmlContent)
' Access and manipulate the DOM
const document = dom.window.document
const contentDiv = document.getElementById( 'content');
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'contentDiv.innerHTML = '<p> Hello, modified Jsdom!</p>'; const modifiedHtml = dom.serialize(); console.log(modifiedHtml);
El constructor Jsdom acepta opciones que usted puede suministrar para personalizar diferentes partes de su funcionalidad. Estas son algunas opciones de configuración típicas:
Regula cómo deben cargarse los scripts y las hojas de estilo de recursos externos mediante la API de objetos de Jsdom. Decida si Jsdom debe ejecutar los scripts del HTML analizado. Permite capturar la salida de consola de los scripts que se ejecutan en Jsdom. Imita el entorno visual de un navegador, lo que podría repercutir en varios cálculos de CSS y maquetación.
Esta es una ilustración de la configuración del código Jsdom mediante opciones.
const { JSDOM } = require('jsdom');
const htmlContent = '<!DOCTYPE html><html><body><p>Hello, Jsdom!</p></body></html>';
const options = {
resources: 'usable', // Load external resources (e.g., scripts, stylesheets)
runScripts: 'dangerously', // Allow scripts to run
};
const dom = new JSDOM(htmlContent, options);
// Access the document and window objects
const document = dom.window.document;
const window = dom.window;
// Manipulate the DOM or interact with the window object here
console.log(document.documentElement.outerHTML); // Output the modified HTML
const { JSDOM } = require('jsdom');
const htmlContent = '<!DOCTYPE html><html><body><p>Hello, Jsdom!</p></body></html>';
const options = {
resources: 'usable', // Load external resources (e.g., scripts, stylesheets)
runScripts: 'dangerously', // Allow scripts to run
};
const dom = new JSDOM(htmlContent, options);
// Access the document and window objects
const document = dom.window.document;
const window = dom.window;
// Manipulate the DOM or interact with the window object here
console.log(document.documentElement.outerHTML); // Output the modified HTML
'INSTANT VB TODO TASK: The following line could not be converted:
const
If True Then
JSDOM } = require( 'jsdom');
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'const htmlContent = '<!DOCTYPE html><html><body><p> Hello, Jsdom!</p></body></html>'; const options = { resources: 'usable', runScripts: 'dangerously'}; const dom = New JSDOM(htmlContent, options); const document = dom.window.document; const window = dom.window; console.log(document.documentElement.outerHTML); ' Output the modified HTML
En situaciones más complicadas, como la conexión de código de prueba con marcos de pruebas o la emulación de interacciones de usuario, también se puede aplicar Jsdom. He aquí una ilustración de cómo utilizar Jsdom y Jest para realizar pruebas:
const { JSDOM } = require('jsdom');
test('modifying DOM with Jsdom', () => {
const dom = new JSDOM('<!DOCTYPE html><html><body><p>Hello, Jsdom!</p></body></html>');
const document = dom.window.document;
const contentParagraph = document.querySelector('p');
// Assert initial content
expect(contentParagraph.textContent).toBe('Hello, Jsdom!');
// Modify content
contentParagraph.textContent = 'Hello, modified Jsdom!';
// Assert modified content
expect(contentParagraph.textContent).toBe('Hello, modified Jsdom!');
});
const { JSDOM } = require('jsdom');
test('modifying DOM with Jsdom', () => {
const dom = new JSDOM('<!DOCTYPE html><html><body><p>Hello, Jsdom!</p></body></html>');
const document = dom.window.document;
const contentParagraph = document.querySelector('p');
// Assert initial content
expect(contentParagraph.textContent).toBe('Hello, Jsdom!');
// Modify content
contentParagraph.textContent = 'Hello, modified Jsdom!';
// Assert modified content
expect(contentParagraph.textContent).toBe('Hello, modified Jsdom!');
});
'INSTANT VB TODO TASK: The following line could not be converted:
const
If True Then
JSDOM } = require( 'jsdom');
test( 'modifying DOM @with Jsdom', () =>
If True Then
const dom = New JSDOM( '<!DOCTYPE html><html><body><p> Hello, Jsdom!</p></body></html>');
const document = dom.window.document
const contentParagraph = document.querySelector("p"c)
expect(contentParagraph.textContent).toBe( 'Hello, Jsdom!');
'INSTANT VB TODO TASK: The following line uses invalid syntax:
' contentParagraph.textContent = 'Hello, modified Jsdom!'; expect(contentParagraph.textContent).toBe('Hello, modified Jsdom!'); });
Hacer que IronPDF y Jsdom funcionen en Node.js implica combinar estas bibliotecas para convertir información HTML en documentos PDF. Jsdom permite trabajar con documentos HTML mediante programación, mientras que IronPDF facilita la conversión de HTML a PDF. Aquí tienes un manual para ponerte en marcha.
Una potente biblioteca llamadaIronPDF for Node.js está pensado para producir documentos PDF de calidad superior a partir de texto HTML. Además de preservar la integridad del contenido web original, facilita el proceso de convertir HTML, CSS y JavaScript en PDF con formato completo. Las aplicaciones web que necesitan generar documentos dinámicos e imprimibles, como informes, facturas y certificaciones, pueden encontrar esta herramienta especialmente útil.
Entre las muchas funciones que ofrece IronPDF se encuentran la configuración ajustable de páginas, encabezados, pies de página y la posibilidad de incrustar imágenes y fuentes. Para garantizar que los PDF generados se adhieran al diseño previsto, permite maquetaciones y estilos intrincados. Además, IronPDF gestiona la ejecución de JavaScript dentro de HTML, lo que permite una representación precisa del material dinámico e interactivo.
Generación de PDF a partir de HTML
Convierte JavaScript, HTML y CSS a PDF. Admite media queries y diseño responsivo, dos estándares web contemporáneos. Útil para decorar dinámicamente documentos PDF, informes y facturas mediante HTML y CSS.
Edición de PDF
A los PDF preexistentes se les puede añadir texto, fotos y otros contenidos, o bien se puede extraer texto e imágenes de estos archivos PDF. Combinar numerosos PDF en un solo archivo. Divida archivos PDF en varios documentos independientes. Incluye marcas de agua, anotaciones, encabezados y pies de página.
**Rendimiento y fiabilidad
El alto rendimiento y la fiabilidad son cualidades de diseño deseadas en los entornos industriales. IronPDF gestiona grandes conjuntos de documentos con facilidad.
Instale el paquete IronPDF para obtener las herramientas que necesita para trabajar con PDF en proyectos Node.
npm install @ironsoftware/ironpdf
npm install @ironsoftware/ironpdf
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'npm install @ironsoftware/ironpdf
Prepara el material HTML para convertirlo a PDF. A modo de ejemplo:
<!-- example.html -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Example Document</title>
<style>
body {
font-family: Arial, sans-serif;
}
.content {
margin: 20px;
}
</style>
</head>
<body>
<div class="content">
<h1>Hello, Jsdom with IronPDF!</h1>
<p>This is a sample HTML document converted to PDF using Jsdom and IronPDF.</p>
</div>
</body>
</html>
<!-- example.html -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Example Document</title>
<style>
body {
font-family: Arial, sans-serif;
}
.content {
margin: 20px;
}
</style>
</head>
<body>
<div class="content">
<h1>Hello, Jsdom with IronPDF!</h1>
<p>This is a sample HTML document converted to PDF using Jsdom and IronPDF.</p>
</div>
</body>
</html>
<(Not -)- example.html -- > <(Not DOCTYPE) html> <html lang="en"> <meta charset="UTF-8"> (Of title) Example Document</title> ReadOnly Property body() As (Of style)(Of head)
font-family: Arial, sans-serif
End Property
.content
If True Then
margin:
20px
End If
'INSTANT VB TODO TASK: The following line uses invalid syntax:
' </style> </head> <body> <div class="content"> <h1> Hello, Jsdom @with IronPDF!</h1> <p> This is a sample HTML document converted @to PDF using Jsdom @and IronPDF.</p> </div> </body> </html>
Crear un script Node.js llamado convertToPdf.js que analice el contenido HTML utilizando Jsdom y cree un PDF utilizando IronPDF.
const { JSDOM } = require('jsdom');
const IronPdf = require("@ironsoftware/ironpdf");
const document=IronPdf.PdfDocument;
var config=IronPdf.IronPdfGlobalConfig
config.setConfig({licenseKey:''});
const fs = require('fs');
// Load the HTML content from file
const htmlContent = fs.readFileSync('example.html', 'utf8');
// Create a Jsdom instance and parse the HTML
const dom = new JSDOM(htmlContent);
const jdocument = dom.window.document;
document.fromHtml(jdocument.documentElement.outerHTML).then((pdfres)=>{
const filePath = `${Date.now()}.pdf`;
pdfres.saveAs(filePath).then(()=>{
console.log('PDF saved successfully!');
}).catch((e)=>{
console.log(e);
});
});
const { JSDOM } = require('jsdom');
const IronPdf = require("@ironsoftware/ironpdf");
const document=IronPdf.PdfDocument;
var config=IronPdf.IronPdfGlobalConfig
config.setConfig({licenseKey:''});
const fs = require('fs');
// Load the HTML content from file
const htmlContent = fs.readFileSync('example.html', 'utf8');
// Create a Jsdom instance and parse the HTML
const dom = new JSDOM(htmlContent);
const jdocument = dom.window.document;
document.fromHtml(jdocument.documentElement.outerHTML).then((pdfres)=>{
const filePath = `${Date.now()}.pdf`;
pdfres.saveAs(filePath).then(()=>{
console.log('PDF saved successfully!');
}).catch((e)=>{
console.log(e);
});
});
'INSTANT VB TODO TASK: The following line could not be converted:
const
If True Then
JSDOM } = require( 'jsdom');
const IronPdf = require("@ironsoftware/ironpdf")
const document=IronPdf.PdfDocument
Dim config=IronPdf.IronPdfGlobalConfig config.setConfig({licenseKey: ''});
const fs = require( 'fs');
' Load the HTML content from file
const htmlContent = fs.readFileSync( 'example.html', 'utf8');
' Create a Jsdom instance and parse the HTML
const dom = New JSDOM(htmlContent)
const jdocument = dom.window.document
'INSTANT VB TODO TASK: Local functions are not converted by Instant VB:
'document.fromHtml(jdocument.documentElement.outerHTML).@then((pdfres)=>
'{
' const filePath = `$
' {
' @Date.now()
' }
' .pdf`;
' pdfres.saveAs(filePath).@then(()=>
Cargar contenido HTML desde una base de datos, un archivo o contenido creado dinámicamente. Para crear un documento PDF a partir del contenido HTML analizado, utilice IronPDF. La cadena HTML es aceptada por la plataforma de IronPDFRenderHtmlAsPdf a continuación, se envía una Promise con los datos del PDF. Uso del módulo del sistema de archivos(fs) de Node.js, IronPDF crea el documento PDF como un búfer(pdfBuffer)la traducción debe ser profesional, preservando la precisión técnica y explicando al mismo tiempo las características y ventajas de estas herramientas para desarrolladores. El tratamiento de errores garantiza la resistencia en caso de problemas, como HTML corrupto o dificultades de red, durante la creación de PDF.
Para crear mediante programación documentos PDF de alta calidad a partir de información HTML, Jsdom ofrece una opción fiable. Con Jsdom, los desarrolladores pueden interactuar con elementos DOM y editar información de forma dinámica, facilitando el análisis y la manipulación de páginas HTML en un entorno de navegador simulado. Esta función es esencial para tareas como la extracción de datos, la generación de informes dinámicos y el web scraping.
IronPDF es un gran complemento para Jsdom, ya que permite convertir textos HTML en PDF con un control exacto del diseño, la paginación, los encabezados, los pies de página y otras características específicas de los PDF. Facilita la conversión de estructuras HTML complicadas de aplicaciones Node.js directamente en archivos PDF preparados e imprimibles.
La combinación de Jsdom e IronPDF permite a los desarrolladores crear documentos PDF a partir de plantillas HTML o información generada dinámicamente de forma automática. Esto hace que los documentos sean útiles para diversos casos de uso, como la elaboración de informes, certificados, facturas, etc. Esta integración satisface eficazmente los requisitos exclusivos de las aplicaciones centradas en documentos dentro del ecosistema Node.js utilizando los puntos fuertes de ambas bibliotecas para mejorar la productividad y preservar la fidelidad de los documentos.
IronPDF y Iron Software le permiten ampliar las capacidades de su. NET con OCR, escaneado de códigos de barras, creación de PDF, integración con Excel y otras funciones. IronPDF combinaIronSoftware sistemas altamente configurables y suite con su soporte básico para proporcionar a los desarrolladores aplicaciones y funciones en línea adicionales, así como un desarrollo más eficiente, todo ello por sólo 749 dólares para la edición base.
Cuando las opciones de licencia son claras y se adaptan al proyecto, los desarrolladores pueden seleccionar el modelo óptimo con mayor facilidad. Estas funciones ayudan a los desarrolladores a resolver una amplia gama de problemas de forma directa, eficaz y bien integrada.
9 productos API .NET para sus documentos de oficina