Comment créer des fichiers PDF en Node.js
Créer des fichiers PDF de manière programmatique dans Node.js nécessite une bibliothèque qui gère correctement le rendu HTML, prend en charge les CSS modernes, et s'intègre proprement avec les modèles d'asynchronisme de Node. IronPDF utilise un moteur de rendu basé sur Chromium pour convertir le contenu HTML en PDF correspondant à la sortie d'impression de Chrome, prenant en charge le CSS complet, JavaScript en ligne et les mises en page réactives dès le départ.
Ce guide couvre le flux de travail complet : installation, génération de PDF à partir de chaînes HTML, fichiers HTML, et URL, configuration des options de sortie, et application des fonctionnalités d'entreprise comme les en-têtes, pieds de page, signatures numériques, et le cryptage.
Démarrage rapide : Créer un PDF dans Node.js
- Installez IronPDF via npm :
npm install @ironsoftware/ironpdf - Importer
PdfDocumentdepuis@ironsoftware/ironpdf - Appelez
PdfDocument.fromHtml()avec votre contenu HTML - Appelez
.saveAs()pour enregistrer le fichier PDF sur le disque
//:path=/static-assets/pdf/content-code-examples/tutorials/nodejs-create-pdf/quickstart.js
import { PdfDocument } from "@ironsoftware/ironpdf";
const pdf = await PdfDocument.fromHtml("<h1>Hello, PDF!</h1><p>Generated with IronPDF.</p>");
await pdf.saveAs("output.pdf");
Configurez IronPdfEngine pour votre plateforme avant de l'exécuter en production. Voir le guide de configuration IronPdfEngine pour Windows, Linux, macOS, et Docker.
Flux de travail minimal (5 étapes)
- Installez IronPDF :
npm install @ironsoftware/ironpdf - Importez
PdfDocumentdepuis@ironsoftware/ironpdf - Générez un PDF en utilisant
PdfDocument.fromHtml(),PdfDocument.fromFile(), ouPdfDocument.fromUrl() - Appliquez des paramètres optionnels : taille de papier, marges, en-têtes, pieds de page
- Enregistrez la sortie avec
pdf.saveAs("output.pdf")
Comment installer IronPDF for Node.js?
Installez le paquet @ironsoftware/ironpdf à l'aide de npm. Le package fonctionne avec Node.js 12.0 ou supérieur et prend en charge les formats de module ESM et CommonJS.
//:path=/static-assets/pdf/content-code-examples/tutorials/nodejs-create-pdf/install.sh
npm install @ironsoftware/ironpdf
//:path=/static-assets/pdf/content-code-examples/tutorials/nodejs-create-pdf/install.sh
npm install @ironsoftware/ironpdf
IronPDF for Node.js dépend du binaire IronPDF Engine, qui gère le rendu sous-jacent basé sur Chromium. Le moteur se télécharge automatiquement lors de la première exécution, mais vous pouvez préinstaller le package spécifique à la plateforme pour éviter les téléchargements au moment de l'exécution. Cela est utile dans les environnements réseau restreints ou les pipelines CI basés sur Docker :
| Plate-forme | Emballer |
|---|---|
| Windows x64 | @ironsoftware/IronPDF-engine-Windows-x64 |
| Linux x64 | @ironsoftware/IronPDF-engine-linux-x64 |
| macOS x64 | @ironsoftware/IronPDF-engine-macos-x64 |
| macOS ARM | @ironsoftware/IronPDF-engine-macos-arm64 |
PdfDocument en définissant IronPdfGlobalConfig.setConfig({ licenseKey: "YOUR-KEY" }). Suivez les instructions complètes de configuration de la clé de licence.Quelles sont les exigences système pour IronPDF?
IronPDF for Node.js fonctionne sur Node.js 12.0 ou supérieur sous Windows, Linux, macOS, et dans les environnements Docker. La bibliothèque prend en charge les architectures x64 et ARM64, ce qui la rend adaptée au développement local et aux déploiements containerisés. Pour les environnements cloud, IronPDF prend également en charge la connexion à un moteur IronPDF distant au lieu d'exécuter le moteur localement.
Comment créer un PDF à partir de HTML dans Node.js ?
Utilisez PdfDocument.fromHtml() pour générer un PDF à partir d'une chaîne HTML. La méthode accepte tout code HTML valide, y compris les blocs <style> en ligne, les polices externes chargées via un CDN et les systèmes de mise en page tels que CSS Grid ou Flexbox. Le moteur de rendu Chromium résout toutes les ressources avant de générer le PDF.
//:path=/static-assets/pdf/content-code-examples/tutorials/nodejs-create-pdf/html-string-to-pdf.js
import { PdfDocument } from "@ironsoftware/ironpdf";
const htmlContent = `
<!DOCTYPE html>
<html>
<head>
<style>
body { font-family: Arial, sans-serif; margin: 0; padding: 0; }
.header { background: #2b4c8c; color: white; padding: 24px 32px; }
.header h1 { margin: 0; font-size: 22px; }
.body { padding: 32px; }
table { width: 100%; border-collapse: collapse; margin-top: 16px; }
th { background: #f0f4fb; text-align: left; padding: 8px 12px; }
td { padding: 8px 12px; border-bottom: 1px solid #e0e0e0; }
</style>
</head>
<body>
<div class="header"><h1>Invoice #INV-2025-0042</h1></div>
<div class="body">
<p>Date: ${new Date().toLocaleDateString()}</p>
<table>
<tr><th>Item</th><th>Qty</th><th>Unit Price</th><th>Total</th></tr>
<tr><td>IronPDF Enterprise License</td><td>1</td><td>$499.00</td><td>$499.00</td></tr>
<tr><td>Priority Support (1 year)</td><td>1</td><td>$199.00</td><td>$199.00</td></tr>
</table>
<p style="text-align:right; margin-top:16px;"><strong>Total: $698.00</strong></p>
</div>
</body>
</html>`;
// Generate the PDF from the HTML string
const pdf = await PdfDocument.fromHtml(htmlContent);
await pdf.saveAs("invoice.pdf");
PdfDocument.fromHtml() renvoie une instance PdfDocument. Appelez saveAs() avec le chemin de sortie souhaité pour écrire le fichier. La méthode est asynchrone, utilisez donc await ou enchaînez un gestionnaire .then(). Le moteur Chromium gère le chargement des polices, les feuilles de style externes et la résolution des actifs avant la capture de la sortie. Pour plus de schémas, consultez l'exemple de création de PDF à partir de chaîne HTML.
Comment créer un PDF à partir d'un fichier HTML ?
Chargez un fichier .html existant à partir du disque à l'aide de PdfDocument.fromFile(). Cette approche est idéale pour les documents modélisés où le HTML est maintenu séparément de la logique de l'application.
//:path=/static-assets/pdf/content-code-examples/tutorials/nodejs-create-pdf/html-file-to-pdf.js
import { PdfDocument } from "@ironsoftware/ironpdf";
// Load an HTML file and render it as a PDF
const pdf = await PdfDocument.fromFile("./templates/report-template.html");
await pdf.saveAs("./output/report.pdf");
Le moteur de rendu résout les chemins des actifs relatifs à partir du répertoire du fichier HTML, de sorte que les références CSS et d'images locales fonctionnent sans configuration supplémentaire. Voir l'exemple de fichier HTML vers PDF pour des options supplémentaires, y compris comment remplacer l'URL de base pour la résolution des actifs.
Comment générer un PDF à partir d'une URL ?
Utilisez PdfDocument.fromUrl() pour convertir une page web en direct au format PDF. Le moteur charge la page sous forme de session complète du navigateur, exécute JavaScript, applique CSS et attend le contenu dynamique avant de capturer le résultat.
//:path=/static-assets/pdf/content-code-examples/tutorials/nodejs-create-pdf/url-to-pdf.js
import { PdfDocument } from "@ironsoftware/ironpdf";
// Render a live webpage to PDF
const pdf = await PdfDocument.fromUrl("https://ironpdf.com/nodejs/");
await pdf.saveAs("ironpdf-homepage.pdf");
Pour les pages qui chargent du contenu de manière asynchrone via JavaScript, associez cette option à renderDelay (en millisecondes) afin de laisser un délai supplémentaire avant la capture. L'exemple URL vers PDF démontre la configuration du délai et des en-têtes d'authentification.
Comment configurer les paramètres de sortie PDF ?
Passez un objet de configuration en tant que deuxième argument à PdfDocument.fromHtml(), PdfDocument.fromFile() ou PdfDocument.fromUrl(). L'objet de configuration accepte la taille du papier, les marges, l'orientation et les options de rendu.
//:path=/static-assets/pdf/content-code-examples/tutorials/nodejs-create-pdf/pdf-settings.js
import { PdfDocument, PdfPaperSize } from "@ironsoftware/ironpdf";
const config = {
paperSize: PdfPaperSize.A4,
marginTop: 25,
marginBottom: 25,
marginLeft: 20,
marginRight: 20,
landscape: false,
printBackground: true,
};
const pdf = await PdfDocument.fromHtml("<h1>Configured PDF</h1>", config);
await pdf.saveAs("configured-output.pdf");
Les options de configuration clés incluent :
paperSize: accepte les valeurs de l'énumérationPdfPaperSize(A4, Letter, Legal et formats personnalisés)landscape: définirtruepour l'orientation paysage de la pageprintBackground: inclure les couleurs d'arrière-plan CSS et les imagesmarginTop/Bottom/Left/Right: marges de page en millimètresrenderDelay: délai d'attente en millisecondes avant la capture pour les pages riches en JavaScript
Comment ajouter des en-têtes et pieds de page à un PDF ?
Ajoutez des en-têtes et des pieds de page en fournissant les propriétés htmlHeader et htmlFooter dans l'objet de configuration. Les deux acceptent des chaînes HTML complètes, permettant un contenu stylé avec des numéros de page, des dates et du texte dynamique.
//:path=/static-assets/pdf/content-code-examples/tutorials/nodejs-create-pdf/headers-footers.js
import { PdfDocument } from "@ironsoftware/ironpdf";
const config = {
htmlHeader: {
htmlFragment: "<div style='text-align:center; font-size:12px; color:#666;'>Quarterly Report - Confidential</div>",
dividerLine: true,
},
htmlFooter: {
htmlFragment: "<div style='text-align:right; font-size:10px;'>Page {page} of {total-pages}</div>",
dividerLine: true,
},
};
const pdf = await PdfDocument.fromHtml("<h1>Q3 Financial Summary</h1><p>See attached tables.</p>", config);
await pdf.saveAs("report-with-headers.pdf");
Utilisez les balises {page} et {total-pages} dans le code HTML du pied de page ; IronPDF substitue les valeurs correctes lors du rendu. Pour plus de modèles d'en-têtes et pieds de page, y compris des en-têtes et pieds de page HTML et des techniques avancées d'en-tête, consultez les exemples liés.
Comment ajouter de la sécurité et des métadonnées à un PDF ?
Appliquez une protection par mot de passe et un chiffrement au PDF généré à l'aide des méthodes de sécurité PdfDocument. La bibliothèque prend en charge à la fois les mots de passe propriétaire et utilisateur, avec des contrôles de permission granulaires pour l'impression, la copie et la modification.
//:path=/static-assets/pdf/content-code-examples/tutorials/nodejs-create-pdf/security.js
import { PdfDocument } from "@ironsoftware/ironpdf";
const pdf = await PdfDocument.fromHtml("<h1>Confidential Document</h1>");
// Apply password protection with granular permissions
await pdf.securePdf({
userPassword: "view-password",
ownerPassword: "admin-password",
allowUserAnnotations: false,
allowUserPrinting: true,
allowUserCopyPasteContent: false,
});
await pdf.saveAs("secured-document.pdf");
Le chiffrement et le déchiffrement utilisent par défaut le chiffrement AES 256 bits lorsque des mots de passe sont appliqués. Pour les flux de travail d'authentification de documents, IronPDF prend également en charge les signatures numériques utilisant des certificats X.509.
PdfDocument.fromHtml() suivi de la méthode de conversion PDF/A. IronPDF prend en charge la conformité PDF/A et les normes d'accessibilité PDF/UA.Comment fusionner et manipuler des PDF existants ?
PdfDocument fournit des méthodes pour fusionner, diviser et modifier des fichiers PDF existants. Chargez un PDF existant avec PdfDocument.fromFile() et utilisez les méthodes de manipulation pour ajouter ou supprimer des pages, apposer un tampon sur le contenu ou remplacer du texte.
//:path=/static-assets/pdf/content-code-examples/tutorials/nodejs-create-pdf/merge-pdfs.js
import { PdfDocument } from "@ironsoftware/ironpdf";
// Merge two PDF files into one
const merged = await PdfDocument.mergePdf([
await PdfDocument.fromFile("./report-part1.pdf"),
await PdfDocument.fromFile("./report-part2.pdf"),
]);
await merged.saveAs("./complete-report.pdf");
PdfDocument.mergePdf() accepte un tableau d'instances PdfDocument et renvoie un seul document fusionné. L'ordre des pages suit l'ordre du tableau, de sorte que la sortie préserve la séquence des fichiers d'entrée.
Autres opérations de manipulation courantes :
- Supprimer une page d'un PDF à l'aide de
removePages() - Tamponner du contenu HTML sur un document existant
- Trouver et remplacer du texte sur toutes les pages
- Extraire du texte d'un PDF pour l'indexation ou le traitement
Pour des scénarios à fort volume, la génération de PDF multi-threadée vous permet de traiter plusieurs documents en parallèle. La compression PDF réduit la taille des fichiers pour le stockage et la transmission.
Comment générer des PDF pour un contenu complexe comme des graphiques et des pages Angular ?
IronPDF rend les pages en utilisant une session complète du navigateur Chromium, ce qui signifie que les bibliothèques JavaScript qui produisent des graphiques, des diagrammes ou des visualisations de données sont correctement rendues, y compris les bibliothèques de graphiques JavaScript. Les applications monopages construites avec des frameworks tels qu'Angular se convertissent également proprement en utilisant l'exemple Angular vers PDF.
Pour les documents riches en Unicode ou la sortie multilingue, IronPDF gère Unicode et les jeux de caractères internationaux sans configuration supplémentaire. L'exemple d'intégration des Google Fonts montre comment charger des polices web dans le HTML restitué pour une typographie cohérente dans le PDF de sortie.
renderDelay en millisecondes pour laisser à la page le temps de s'afficher complètement.Quelles sont les prochaines étapes pour créer des PDF dans Node.js ?
Ce guide a couvert le flux de travail de base d'IronPDF : installer la bibliothèque, générer des PDF à partir de chaînes HTML, de fichiers et d'URLs, configurer les paramètres de sortie, ajouter des en-têtes et pieds de page, appliquer la sécurité et manipuler des PDF existants.
Pour continuer, consultez le tutoriel complet HTML vers PDF pour une présentation plus détaillée des options de rendu, ou parcourez la référence API pour obtenir la liste complète des méthodes et des propriétés de configuration PdfDocument.
Commencez votre essai gratuit pour générer des PDF sans filigranes, ou consultez les options de licence pour les déploiements en production.
Questions Fréquemment Posées
Quel est le moyen le plus simple de créer des fichiers PDF en Node.js ?
Installez IronPDF avec npm install @ironsoftware/ironpdf, puis appelez PdfDocument.fromHtml() avec votre chaîne HTML et enregistrez le résultat en utilisant saveAs(). La bibliothèque gère tous les rendus automatiquement.
Comment installer IronPDF for Node.js ?
Exécutez npm install @ironsoftware/ironpdf dans le répertoire de votre projet. Le binaire du moteur IronPDF se télécharge automatiquement lors de la première utilisation. Pour les environnements hors ligne ou CI, installez le package moteur spécifique à la plate-forme tel que @ironsoftware/ironpdf-engine-linux-x64 séparément.
Puis-je convertir du HTML en PDF tout en préservant les styles et le formatage CSS ?
Oui. IronPDF utilise un moteur de rendu basé sur Chromium qui préserve tous les styles CSS, les polices externes et l'exécution JavaScript lors de la conversion de HTML en PDF. La sortie correspond au comportement de prévisualisation d'impression de Chrome.
Quelles fonctionnalités PDF sont disponibles au-delà de la conversion HTML basique ?
IronPDF supporte les signatures numériques, le chiffrement AES 256 bits, la protection par mot de passe avec des permissions granulaires, les en-têtes et les pieds de page personnalisés avec des jetons de numéro de page, la fusion de PDF, la suppression de pages, le timbrage HTML, l'extraction de texte, la conformité PDF/A et la génération multi-thread.
Comment créer un PDF à partir d'un fichier HTML sur disque ?
Utilisez PdfDocument.fromFile('./path/to/template.html'). Le moteur résout les chemins relatifs des ressources depuis le répertoire du fichier HTML, donc les références locales CSS et image fonctionnent sans configuration supplémentaire.
Puis-je extraire du texte de fichiers PDF existants en using IronPDF ?
Oui. Chargez un PDF existant avec PdfDocument.fromFile() et utilisez les méthodes d'extraction de texte pour lire le contenu de n'importe quelle page. IronPDF supporte à la fois la création de nouveaux PDF et le traitement de documents existants.
IronPDF supporte-t-il l'exécution de JavaScript lors du rendu HTML ?
Oui. Le moteur Chromium exécute JavaScript avant de capturer le PDF. Pour les pages qui chargent du contenu de manière asynchrone, définissez l'option renderDelay en millisecondes pour donner à la page du temps supplémentaire avant la capture.

