Test dans un environnement réel
Test en production sans filigrane.
Fonctionne partout où vous en avez besoin.
Lorsque Jsdom et IronPDF sont combinés dans Node.js, les programmeurs ont accès à une vaste boîte à outils pour la création et la modification de documents PDF. Une implémentation purement JavaScript du DOM du W3C, appelée Jsdom, permet de manipuler des documents HTML et XML côté serveur d'une manière similaire à ce qui est possible dans un navigateur. À l'inverse, IronPDF utilise des API Node.js simples pour faciliter la création de PDF de haute qualité à partir de contenus HTML.
La combinaison de Jsdom et d'IronPDF permet aux développeurs de transformer facilement des pages web en PDF au sein de leurs applications Node.js, de modifier des PDF préexistants et de créer à la volée des documents PDF à partir de modèles HTML. Cette combinaison est une excellente option pour les projets nécessitant de solides capacités de création de PDF, car elle garantit non seulement la conformité avec les technologies web contemporaines, mais accélère également les opérations de génération de documents.
Jsdom npm (Gestionnaire de paquets Node) est unJavaScript cette bibliothèque permet d'utiliser Node.js pour analyser et travailler avec des documents HTML. Il offre un environnement de type navigateur à l'intérieur de Node.js et prend en charge le DOM du W3C(Modèle d'objet de document). En conséquence, vous pouvez manipuler les caractéristiques et le contenu des documents HTML et XML de manière programmatique. Vous pouvez même simuler des actions telles que des clics et des soumissions de formulaires.
Jsdom est très utile pour des activités telles que la création de rapports basés sur HTML, le test et la vérification de sites en ligne, et le web scraping. Lorsqu'ils travaillent avec des pages HTML dans un environnement côté serveur, où les fonctions standard du navigateur ne sont pas disponibles, ces outils aident les développeurs. Le paquetage npm jsdom comble le fossé entre les fonctionnalités du navigateur côté client et le JavaScript côté serveur en gérant la manipulation et l'interaction HTML dans les applications Node.js.
Grâce à la mise en œuvre de nombreuses fonctionnalités robustes pour le web, Jsdom in Node.js est un outil utile pour les développeurs qui travaillent dans des environnements côté serveur avec des documents HTML et XML. Les principales caractéristiques de Jsdom sont les suivantes :
Jsdom propose une implémentation javascript complète de nombreuses spécifications DOM et HTML du W3C. Cela vous permet d'utiliser les API DOM bien connues pour manipuler de manière programmatique les documents HTML et XML.
Comme Jsdom imite un environnement de navigateur dans Node.js, vous pouvez manipuler des pages HTML comme vous le feriez si JavaScript était exécuté dans un navigateur. Elle couvre l'utilisation du modèle objet du document, la gestion des événements, l'exécution de scripts, ainsi que l'accès et la modification d'éléments.
Les normes web modernes, notamment HTML5, CSS3 et les dernières fonctionnalités JavaScript, sont prises en charge. Cela garantit la compatibilité avec la majorité des contenus web et permet de manipuler et d'analyser des pages complexes avec précision.
Les chaînes HTML peuvent être analysées par Jsdom en structures DOM, et les nœuds DOM peuvent être sérialisés en chaînes HTML. Il s'agit de permettre l'exécution de scripts à l'intérieur de la page et de nous permettre d'éditer et de produire des sorties HTML mises à jour à partir de pages web.
Jsdom peut être configuré pour imiter de nombreuses fonctions liées au navigateur, y compris le traitement des ressources externes(comme le chargement de scripts externes et l'exécution de scripts externes ou de feuilles de style)la traduction doit rester professionnelle, en préservant l'exactitude technique tout en expliquant les caractéristiques et les avantages de ces outils de développement(comme V8 ou SpiderMonkey)et bien d'autres choses encore.
Jsdom est un outil populaire pour écrire des tests unitaires et des tests d'intégration, y compris la manipulation du DOM dans des cadres de test comme Jest et Mocha. Il permet de tester des applications web sans avoir besoin d'un environnement de navigation complet.
Il convient aux applications qui doivent se conformer aux normes d'accessibilité, car il possède des caractéristiques d'accessibilité telles que la compatibilité avec les lecteurs d'écran et la prise en charge des propriétés ARIA.
Jsdom fonctionne bien avec d'autres bibliothèques et l'écosystème plus large de Node.js. Elle peut être utilisée, par exemple, en conjonction avec des logiciels tels que Puppeteer pour des activités plus complexes de web scraping et d'automatisation ou avec Cheerio pour une analyse HTML efficace.
Les étapes ci-dessous peuvent être utilisées pour construire et configurer Jsdom dans une application Node.js :
Tout d'abord, assurez-vous que npm et Node.js sont installés sur votre ordinateur. Npm peut être utilisé pour installer Jsdom :
npm install jsdom
npm install jsdom
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'npm install jsdom
Il s'agit d'un exemple simple de configuration d'un environnement Jsdom et de travail avec un document 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);
Le constructeur Jsdom accepte des options que vous pouvez fournir pour personnaliser différentes parties de sa fonctionnalité. Voici quelques exemples de configurations typiques :
Il régit la manière dont les scripts et les feuilles de style provenant de ressources externes doivent être chargés par l'API de l'objet Jsdom. Décidez si les scripts contenus dans le code HTML analysé doivent être exécutés par Jsdom. Permet aux scripts s'exécutant dans Jsdom de capturer la sortie de leur console. L'environnement visuel d'un navigateur est reproduit, ce qui peut avoir un impact sur plusieurs calculs de CSS et de mise en page.
Voici une illustration de la configuration du code Jsdom à l'aide d'options.
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
Dans des situations plus complexes, telles que la connexion du code de test avec des cadres de test ou l'émulation des interactions avec l'utilisateur, Jsdom peut également être utilisé. Voici une illustration de l'utilisation de Jsdom et Jest pour les tests :
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!'); });
Faire fonctionner IronPDF et Jsdom dans Node.js implique de combiner ces bibliothèques afin de convertir des informations HTML en documents PDF. Jsdom vous permet de travailler avec des documents HTML en utilisant la programmation, tandis qu'IronPDF facilite la conversion de HTML en PDF. Voici un manuel pratique pour vous aider à démarrer.
Une puissante bibliothèque appeléeIronPDF for Node.js est destiné à produire des documents PDF de qualité supérieure à partir d'un texte HTML. Tout en préservant l'intégrité du contenu web original, elle facilite le processus de conversion de HTML, CSS et JavaScript en PDF entièrement formatés. Les applications web qui doivent générer des documents dynamiques et imprimables tels que des rapports, des factures et des certifications peuvent trouver cet outil particulièrement utile.
Parmi les nombreuses fonctionnalités offertes par IronPDF, citons les paramètres de page ajustables, les en-têtes, les pieds de page et la possibilité d'intégrer des images et des polices de caractères. Afin de garantir que les PDF générés respectent la conception prévue, le logiciel autorise des mises en page et des styles complexes. En outre, IronPDF gère l'exécution de JavaScript à l'intérieur de HTML, ce qui permet un rendu précis des documents dynamiques et interactifs.
**Génération de PDF à partir de HTML
Convertissez JavaScript, HTML et CSS en PDF. Prend en charge les requêtes média et la conception réactive, deux normes web contemporaines. Utile pour décorer dynamiquement des documents PDF, des rapports et des factures à l'aide de HTML et de CSS.
Édition PDF
Il est possible d'ajouter du texte, des photos et d'autres contenus à des fichiers PDF préexistants, ou encore de retirer du texte et des photos de ces fichiers PDF. Combinez plusieurs PDF en un seul fichier. Diviser des fichiers PDF en plusieurs documents distincts. Inclure des filigranes, des annotations, des en-têtes et des pieds de page.
Performance et fiabilité
Les performances élevées et la fiabilité sont des qualités recherchées dans les environnements industriels. IronPDF gère facilement des ensembles de documents volumineux.
Installez le package IronPDF pour obtenir les outils dont vous avez besoin pour travailler avec des PDF dans des projets Node.
npm install @ironsoftware/ironpdf
npm install @ironsoftware/ironpdf
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'npm install @ironsoftware/ironpdf
Préparez le matériel HTML pour qu'il soit converti en PDF. A titre d'exemple :
<!-- 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>
Réalisez un script Node.js appelé convertToPdf.js qui analyse le contenu HTML à l'aide de Jsdom et crée un PDF à l'aide d'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(()=>
Charger du contenu HTML à partir d'une base de données, d'un fichier ou d'un contenu créé dynamiquement. Pour créer un document PDF à partir du contenu HTML analysé, utilisez IronPDF. La chaîne HTML est acceptée par IronPDFRenderHtmlAsPdf la traduction doit rester professionnelle, tout en préservant la précision technique et en expliquant les caractéristiques et les avantages de ces outils de développement. Utilisation du module de système de fichiers(fs) de Node.js, IronPDF crée le document PDF sous la forme d'un tampon(pdfBuffer)la traduction doit rester professionnelle et préserver l'exactitude technique tout en expliquant les caractéristiques et les avantages de ces outils de développement. La gestion des erreurs garantit la résilience en cas de problèmes, tels qu'un code HTML corrompu ou des difficultés de réseau, pendant la création des PDF.
Pour la création programmatique de documents PDF de haute qualité à partir d'informations HTML, Jsdom offre une option fiable. Avec Jsdom, les développeurs peuvent interagir avec les éléments DOM et modifier dynamiquement les informations en facilitant l'analyse et la manipulation des pages HTML dans un environnement de navigateur simulé. Cette fonctionnalité est essentielle pour des tâches telles que l'extraction de données, la génération de rapports dynamiques et l'exploration du web.
Grâce à ses solides capacités de transformation de textes HTML en PDF qui vous donnent un contrôle exact sur la mise en page, la pagination, les en-têtes, les pieds de page et d'autres fonctionnalités spécifiques aux PDF, IronPDF est un excellent complément à Jsdom. Il est plus facile de convertir des structures HTML compliquées provenant d'applications Node.js directement en fichiers PDF préparés et imprimables.
La combinaison de Jsdom et d'IronPDF permet aux développeurs de créer automatiquement des documents PDF à partir de modèles HTML ou d'informations générées dynamiquement. Les documents peuvent ainsi être utilisés dans de nombreux cas, notamment pour la production de rapports, de certificats, de factures, etc. Cette intégration répond efficacement aux exigences uniques des applications centrées sur les documents dans l'écosystème Node.js en utilisant les forces des deux bibliothèques pour améliorer la productivité et préserver la fidélité des documents.
IronPDF et Iron Software vous permettent d'étendre les capacités de votre . NET avec OCR, lecture de codes-barres, création de PDF, intégration d'Excel et d'autres fonctionnalités. IronPDF combineLe site web d'IronSoftware l'édition de base est une suite de systèmes hautement configurables qui offre aux développeurs des applications et des fonctionnalités en ligne supplémentaires, ainsi qu'un développement plus efficace, le tout pour seulement 749 $.
Lorsque les options de licence sont claires et adaptées au projet, les développeurs peuvent choisir le modèle optimal avec plus de facilité. Ces fonctionnalités aident les développeurs à résoudre un large éventail de problèmes de manière simple, efficace et bien intégrée.
9 produits de l'API .NET pour vos documents de bureau