Test dans un environnement réel
Test en production sans filigrane.
Fonctionne partout où vous en avez besoin.
Dans le monde numérique d'aujourd'hui, il est essentiel de pouvoir convertir des pages web ou des documents HTML en fichiers PDF. Cela peut être utile pour générer des rapports, créer des factures ou simplement partager des informations dans un format plus présentable. Dans cet article de blog, nous allons explorer comment convertir des pages HTML en PDF à l'aide de Node.js et de Puppeteer, une bibliothèque open-source développée par Google.
Puppeteer est une puissante bibliothèque Node.js qui permet aux développeurs de contrôler des navigateurs headless, principalement Google Chrome ou Chromium, et d'effectuer diverses actions comme le web scraping, la réalisation de captures d'écran et la génération de PDF. Puppeteer fournit une API étendue pour interagir avec le navigateur, ce qui en fait un excellent choix pour la conversion de HTML en PDF.
Avant de commencer, vous devez créer un nouveau projet NodeJS. Suivez les étapes suivantes pour commencer :
Installer NodeJS si ce n'est pas déjà fait(vous pouvez le télécharger à partir du siteSite web de NodeJS).
Créez un nouveau dossier pour votre projet et ouvrez-le dans Visual Studio Code ou tout autre éditeur de code spécifique.
Lancez npm init
pour créer un nouveau fichier package.json
pour votre projet. Suivez les instructions et complétez les informations demandées.
Installez Puppeteer en lançant npm install puppeteer
.
Maintenant que notre projet est en place, plongeons dans le code.
Pour convertir des modèles HTML en fichier PDF à l'aide de Puppeteer, procédez comme suit :
Créez un fichier nommé "HTML To PDF.js" dans le dossier.
const puppeteer = require('puppeteer');
const fs = require('fs');
Le code commence par importer deux bibliothèques essentielles : puppeteer
, un outil polyvalent pour contrôler les navigateurs sans tête comme Chrome et Chromium, et fs
, un module NodeJS intégré pour gérer les opérations du système de fichiers. Puppeteer vous permet d'automatiser un large éventail de tâches basées sur le web, notamment le rendu HTML, la capture de captures d'écran et la génération de fichiers PDF.
async function exportWebsiteAsPdf(html, outputPath) {
// Create a browser instance
const browser = await puppeteer.launch({
headless: 'new'
});
// Create a new page
const page = await browser.newPage();
await page.setContent(html, { waitUntil: 'domcontentloaded' });
// To reflect CSS used for screens instead of print
await page.emulateMediaType('screen');
// Download the PDF
const PDF = await page.pdf({
path: outputPath,
margin: { top: '100px', right: '50px', bottom: '100px', left: '50px' },
printBackground: true,
format: 'A4',
});
// Close the browser instance
await browser.close();
return PDF;
}
La fonction exportWebsiteAsPdf
est au cœur de notre extrait de code. Cette fonction asynchrone accepte une chaîne html
et un outputPath
comme paramètres d'entrée et renvoie un fichier PDF. La fonction effectue les étapes suivantes :
Lance une nouvelle instance de navigateur sans tête en utilisant Puppeteer.
Crée une nouvelle page de navigateur.
Définit la chaîne html
fournie comme contenu de la page, en attendant que le contenu du DOM soit chargé. Nous chargeons les modèles html
en tant que chaîne HTML pour les convertir au format PDF.
Emule le type de média "screen" pour appliquer le CSS utilisé pour les écrans au lieu des styles spécifiques à l'impression.
Génère un fichier PDF à partir du contenu HTML chargé, en spécifiant les marges, l'impression en arrière-plan et le format(A4).
Ferme l'instance du navigateur.
// Usage example
// Get HTML content from HTML file
const html = fs.readFileSync('test.html', 'utf-8');
exportWebsiteAsPdf(html, 'result.PDF').then(() => {
console.log('PDF created successfully.');
}).catch((error) => {
console.error('Error creating PDF:', error);
});
La dernière section du code illustre l'utilisation de la fonction exportWebsiteAsPdf
. Nous procédons aux étapes suivantes :
Lire le contenu HTML d'un fichier HTML en utilisant la méthode readFileSync
du module fs
. Ici, nous chargeons des fichiers modèles pour générer des PDF à partir de pages HTML.
Appelez la fonction exportWebsiteAsPdf
avec la chaîne html
chargée et le outputPath
désiré.
Utilisez un bloc .then
pour gérer la création réussie du PDF, en enregistrant un message de succès dans la console.
Utilisez un bloc .catch
pour gérer toutes les erreurs qui se produisent pendant le processus de conversion HTML vers PDF, en enregistrant un message d'erreur dans la console.
Cet extrait de code fournit un exemple complet de la façon de convertir un modèle HTML en un fichier PDF en utilisant NodeJS et Puppeteer. En mettant en œuvre cette solution, vous pouvez générer efficacement des PDF de haute qualité, répondant aux besoins de diverses applications et utilisateurs.
Outre la conversion de modèles HTML, Puppeteer vous permet également de convertir des URL directement en fichiers PDF.
const puppeteer = require('puppeteer');
Le code commence par importer la bibliothèque Puppeteer, qui est un outil puissant pour contrôler les navigateurs sans tête comme Chrome et Chromium. Puppeteer vous permet d'automatiser toute une série de tâches basées sur le web, y compris le rendu de votre code HTML, la capture de captures d'écran et, dans notre cas, la génération de fichiers PDF.
async function exportWebsiteAsPdf(websiteUrl, outputPath) {
// Create a browser instance
const browser = await puppeteer.launch({
headless: 'new'
});
// Create a new page
const page = await browser.newPage();
// Open URL in current page
await page.goto(websiteUrl, { waitUntil: 'networkidle0' });
// To reflect CSS used for screens instead of print
await page.emulateMediaType('screen');
// Download the PDF
const PDF = await page.pdf({
path: outputPath,
margin: { top: '100px', right: '50px', bottom: '100px', left: '50px' },
printBackground: true,
format: 'A4',
});
// Close the browser instance
await browser.close();
return PDF;
}
La fonction exportWebsiteAsPdf
est le cœur de notre extrait de code. Cette fonction asynchrone accepte un websiteUrl
et un outputPath
comme paramètres d'entrée et renvoie un fichier PDF. La fonction exécute les étapes suivantes :
Lance une nouvelle instance de navigateur sans tête en utilisant Puppeteer.
Crée une nouvelle page de navigateur.
Navigue vers le websiteUrl
fourni et attend que le réseau devienne inactif en utilisant l'option waitUntil
fixée à networkidle0
.
Emule le type de média "screen" pour garantir que le CSS utilisé pour les écrans est appliqué au lieu des styles spécifiques à l'impression.
Convertit la page web chargée en un fichier PDF avec les marges, l'impression en arrière-plan et le format spécifiés(A4).
Ferme l'instance du navigateur.
// Usage example
exportWebsiteAsPdf('https://ironpdf.com/', 'result.pdf').then(() => {
console.log('PDF created successfully.');
}).catch((error) => {
console.error('Error creating PDF:', error);
});
La dernière section du code montre comment utiliser la fonction exportWebsiteAsPdf
. Nous exécutons les étapes suivantes :
Appelez la fonction exportWebsiteAsPdf
avec le websiteUrl
et le outputPath
souhaités.
Utilisez un bloc then
pour gérer la création réussie du PDF. Dans ce bloc, nous enregistrons un message de réussite dans la console.
Utilisez un bloc "catch" pour gérer les erreurs qui surviennent au cours du processus de conversion du site web en PDF. En cas d'erreur, un message d'erreur est affiché dans la console.
En intégrant cet extrait de code dans vos projets, vous pouvez convertir sans effort des URL en fichiers PDF de haute qualité à l'aide de NodeJS et de Puppeteer.
Explorer IronPDF est une bibliothèque .NET populaire utilisée pour générer, éditer et extraire le contenu des fichiers PDF. Il offre une solution simple et efficace pour créer des PDF à partir de HTML, de texte, d'images et de documents PDF existants. IronPDF prend en charge les projets .NET Core, .NET Framework et .NET 5.0+, ce qui en fait un choix polyvalent pour diverses applications.
Conversion de HTML en PDF avec IronPDF (en anglais): IronPDF permet de convertir du contenu HTML, y compris des feuilles de style CSS, en fichiers PDF. Cette fonction vous permet de créer des documents PDF au pixel près à partir de pages web ou de modèles HTML.
Rendu d'URL : IronPDF peut récupérer des pages web directement sur un serveur à l'aide d'une URL et les convertir en fichiers PDF, ce qui facilite l'archivage du contenu web ou la génération de rapports à partir de pages web dynamiques.
Fusion de textes, d'images et de fichiers PDF : IronPDF vous permet de fusionner du texte, des images et des fichiers PDF existants en un seul document PDF. Cette fonction est particulièrement utile pour créer des documents complexes avec plusieurs sources de contenu.
Manipulation de PDF : IronPDF fournit des outils permettant d'éditer des fichiers PDF existants, tels que l'ajout ou la suppression de pages, la modification de métadonnées ou même l'extraction de texte et d'images à partir de documents PDF.
En conclusion, la génération et la manipulation de fichiers PDF est une exigence courante dans de nombreuses applications, et il est essentiel de disposer des bons outils. Les solutions proposées dans cet article, telles que l'utilisation de Puppeteer avec NodeJS ou d'IronPDF avec .NET, offrent des méthodes puissantes et efficaces pour convertir le contenu HTML et les URL en documents PDF professionnels de haute qualité.
IronPDF, en particulier, se distingue par ses nombreuses fonctionnalités, ce qui en fait un choix de premier ordre pour les développeurs .NET. IronPDF offre un service deessai gratuit 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.
Les utilisateurs peuvent également bénéficier de laIron Suite le paquet .NET, une suite de cinq bibliothèques .NET professionnelles comprenantIronXL, IronPDF, IronOCR et plus encore.
9 produits de l'API .NET pour vos documents de bureau