Comment remplir des champs de formulaire PDF dans Node.js
Remplir des formulaires PDF de manière programmatique dans Node.js vous permet d'automatiser les flux de travail de documents : de la population de formulaires d'application avec des enregistrements de base de données à la génération de certificats personnalisés à grande échelle. IronPDF for Node.js fournit une API simple pour charger des PDF existants, écrire des valeurs dans les champs de formulaire, et enregistrer les documents complétés sans quitter votre environnement JavaScript.
Ce guide couvre l'intégralité du flux de travail : installation du package, application d'une clé de licence, remplissage des champs texte, cases à cocher, listes déroulantes et boutons radio, aplatissement des champs de formulaire pour verrouiller les valeurs, et enregistrement du résultat. Tous les exemples de code utilisent await et le paquet @ironsoftware/ironpdf.
Démarrage rapide : Remplir un formulaire PDF avec Node.js
Installez le package, puis chargez et remplissez un formulaire en quelques lignes :
//:path=/static-assets/pdf/content-code-examples/nodejs/how-to/nodejs-fill-pdf-form/install.sh
npm install @ironsoftware/ironpdf
//:path=/static-assets/pdf/content-code-examples/nodejs/how-to/nodejs-fill-pdf-form/install.sh
npm install @ironsoftware/ironpdf
:path=/static-assets/pdf/content-code-examples/nodejs/how-to/nodejs-fill-pdf-form/quickstart.js
const { PdfDocument, IronPdfGlobalConfig } = require("@ironsoftware/ironpdf");
IronPdfGlobalConfig.getConfig().licenseKey = "YOUR-LICENSE-KEY-HERE";
(async () => {
const pdf = await PdfDocument.fromFile("./form.pdf");
await pdf.setFormFieldValue("firstName", "Jane");
await pdf.setFormFieldValue("email", "jane@example.com");
await pdf.saveAs("./filled-form.pdf");
})();
Flux de travail minimal (5 étapes)
1. Installez IronPDF : `npm install @ironsoftware/ironpdf` 2. Définissez votre clé de licence via `IronPdfGlobalConfig.getConfig().licenseKey` 3. Chargez le PDF existant avec `PdfDocument.fromFile(path)` 4. Définissez la valeur de chaque champ avec `await pdf.setFormFieldValue(fieldName, value)` 5. Enregistrez le résultat avec `await pdf.saveAs(outputPath)`Quels prérequis dois-je avoir pour remplir des formulaires PDF dans Node.js ?
Avant d'exécuter les exemples de code ci-dessous, confirmez que trois choses sont en place : une version Node.js supportée, une clé de licence IronPDF, et le binaire IronPdfEngine.
Version de Node.js : IronPDF nécessite Node.js 18 ou supérieur. Téléchargez la version LTS actuelle du site officiel de Node.js. La bibliothèque utilise l'I/O asynchrone de Node.js pour toutes les opérations PDF, donc await ou l'enchaînement de Promesses est le modèle standard partout. Les anciennes versions de Node.js ne sont pas supportées car le paquet dépend des ESM natifs et des fonctionnalités async_hooks qui nécessitent Node.js 18+.
Clé de licence : Une clé de licence IronPDF active débloque l'API complète. Commencez un essai gratuit pour obtenir une clé pour le développement et les tests, ou achetez une licence pour une utilisation en production. Pour les options de déploiement (variables d'environnement, fichiers de configuration, gestionnaires de secrets), consultez le guide Utilisation des clés de licence.
IronPdfEngine : Le paquet Node.js inclut IronPdfEngine, un moteur de rendu multiplateforme qui gère la manipulation réelle des PDF. Les notes d'installation et spécifiques à la plateforme (Windows, Linux, macOS) sont disponibles dans la documentation Utilisation d'IronPdfEngine.
Comment régler la clé de licence dans le code Node.js ?
Appliquez la clé de licence une fois au démarrage de l'application, avant tout appel PdfDocument :
:path=/static-assets/pdf/content-code-examples/nodejs/how-to/nodejs-fill-pdf-form/license-setup.js
const { IronPdfGlobalConfig } = require("@ironsoftware/ironpdf");
// Apply once at startup -- before any PdfDocument operations
IronPdfGlobalConfig.getConfig().licenseKey = process.env.IRONPDF_LICENSE_KEY;
Stocker la clé dans une variable d'environnement (comme indiqué ci-dessus avec process.env.IRONPDF_LICENSE_KEY) garde les identifiants hors du contrôle de version. La Vue d'ensemble de démarrage couvre des modèles d'initialisation supplémentaires pour différents environnements de déploiement.
Comment installer IronPDF for Node.js?
L'installation d'IronPDF for Node.js ne nécessite qu'une seule commande npm. Exécutez-la dans votre répertoire de projet :
//:path=/static-assets/pdf/content-code-examples/nodejs/how-to/nodejs-fill-pdf-form/install-full.sh
npm install @ironsoftware/ironpdf
//:path=/static-assets/pdf/content-code-examples/nodejs/how-to/nodejs-fill-pdf-form/install-full.sh
npm install @ironsoftware/ironpdf
Le paquet est livré avec des déclarations de type TypeScript, donc les projets TypeScript bénéficient d'un support complet IntelliSense sans un paquet séparé @types. Les binaires spécifiques à la plateforme pour Windows, Linux, et macOS sont téléchargés automatiquement lors de l'installation. Le package @Iron Software/ironpdf sur npm répertorie toutes les versions publiées et les dépendances de pair.
Pour les projets TypeScript, les déclarations .d.ts incluses signifient que IntelliSense fonctionne d'emblée dans VS Code et d'autres éditeurs qui supportent les services linguistiques TypeScript.
Pour des instructions sur l'ajout d'IronPDF à un monorepo existant ou à un flux de travail basé sur Docker, consultez la documentation d'IronPDF for Node.js.
Comment remplir des formulaires PDF par programmation?
Charger un PDF et écrire des valeurs dans ses champs de formulaire nécessite trois appels asynchrones : PdfDocument.fromFile(), setFormFieldValue(), et saveAs(). L'exemple ci-dessous remplit un formulaire d'application multi-champs et l'aplatit optionnellement pour que les valeurs ne puissent pas être modifiées après livraison.
À quoi ressemble un exemple complet de remplissage de formulaire ?
L'exemple suivant charge un PDF avec plusieurs types de champs, les remplit et enregistre le résultat. Pour un examen ciblé sur la création de formulaires plutôt que sur leur remplissage, voyez la page d'exemples de formulaires PDF.
//:path=/static-assets/pdf/content-code-examples/nodejs/how-to/nodejs-fill-pdf-form/fill-pdf-form.js
const { PdfDocument, IronPdfGlobalConfig } = require("@ironsoftware/ironpdf");
IronPdfGlobalConfig.getConfig().licenseKey = process.env.IRONPDF_LICENSE_KEY;
async function fillApplicationForm() {
// Load the PDF containing form fields
const pdf = await PdfDocument.fromFile("./forms/application-form.pdf");
// Discover available field names before filling
const fieldNames = await pdf.getFormFieldNames();
console.log("Form fields:", fieldNames);
// Text fields
await pdf.setFormFieldValue("firstName", "Jane");
await pdf.setFormFieldValue("lastName", "Doe");
await pdf.setFormFieldValue("email", "jane.doe@example.com");
await pdf.setFormFieldValue("phone", "+1-555-987-6543");
// Date field
await pdf.setFormFieldValue("dateOfBirth", "03/22/1988");
// Case à cocher fields -- pass "true" or "false" as strings
await pdf.setFormFieldValue("agreeToTerms", "true");
await pdf.setFormFieldValue("subscribeNewsletter", "false");
// Dropdown / select field
await pdf.setFormFieldValue("country", "United States");
// Multi-line text area
await pdf.setFormFieldValue("comments", "Application submitted via automated workflow.");
// Flatten the form to lock values -- prevents further editing
// await pdf.flattenAllFormFields();
await pdf.saveAs("./output/filled-application.pdf");
console.log("Form saved.");
}
fillApplicationForm().catch(console.error);
//:path=/static-assets/pdf/content-code-examples/nodejs/how-to/nodejs-fill-pdf-form/fill-pdf-form.js
const { PdfDocument, IronPdfGlobalConfig } = require("@ironsoftware/ironpdf");
IronPdfGlobalConfig.getConfig().licenseKey = process.env.IRONPDF_LICENSE_KEY;
async function fillApplicationForm() {
// Load the PDF containing form fields
const pdf = await PdfDocument.fromFile("./forms/application-form.pdf");
// Discover available field names before filling
const fieldNames = await pdf.getFormFieldNames();
console.log("Form fields:", fieldNames);
// Text fields
await pdf.setFormFieldValue("firstName", "Jane");
await pdf.setFormFieldValue("lastName", "Doe");
await pdf.setFormFieldValue("email", "jane.doe@example.com");
await pdf.setFormFieldValue("phone", "+1-555-987-6543");
// Date field
await pdf.setFormFieldValue("dateOfBirth", "03/22/1988");
// Case à cocher fields -- pass "true" or "false" as strings
await pdf.setFormFieldValue("agreeToTerms", "true");
await pdf.setFormFieldValue("subscribeNewsletter", "false");
// Dropdown / select field
await pdf.setFormFieldValue("country", "United States");
// Multi-line text area
await pdf.setFormFieldValue("comments", "Application submitted via automated workflow.");
// Flatten the form to lock values -- prevents further editing
// await pdf.flattenAllFormFields();
await pdf.saveAs("./output/filled-application.pdf");
console.log("Form saved.");
}
fillApplicationForm().catch(console.error);
Après avoir appelé getFormFieldNames(), le tableau retourné vous indique quels noms de champs l'auteur du PDF a utilisés. C'est le moyen le plus rapide d'éviter les fautes de frappe dans les noms de champs lors de l'intégration de formulaires que vous n'avez pas créés.
getFormFieldNames() une fois pendant le développement pour imprimer les noms de champs exacts dans votre PDF. Coder en dur le mauvais nom est la cause la plus courante des champs apparaissant vides après setFormFieldValue().Iron Suite joue un rôle crucial dans nos opérations. Ce sont des outils qui augmentent l'efficacité de l'entreprise, y compris la création de plans d'étage et l'amélioration de la gestion des stocks.
Comment gérer différents types de champs de formulaire ?
IronPDF prend en charge les types de champs de formulaire standard AcroForm : boîtes de texte, cases à cocher, boutons radio, listes déroulantes, boîtes de liste, et champs de signature. La méthode setFormFieldValue() accepte des valeurs de chaîne pour tous les types ; pour les champs de case à cocher et radio, les valeurs acceptées dépendent de la définition spécifique du champ dans le PDF.
Le tableau ci-dessous montre le format des valeurs pour chaque type de champ :
| Type de champ | Format de valeur | Exemple d'application |
|---|---|---|
| Texte / Multiligne | Toute chaîne | " Jane Doe " |
| Case à cocher | T169 "true" ou "false" | T169 "true" |
| Bouton Radio | Valeur d'exportation de l'option | "Féminin" |
| Liste déroulante (Combo) | Texte d'affichage de l'option | "États-Unis" |
| Boîte de liste (sélection multiple) | Tableau de chaînes | ["Option1", "Option2"] |
| Date / Numérique | Représentation en chaîne | " 15/06/2024 " |
Comment fonctionnent les cases à cocher et les boutons radio ?
Les cases à cocher acceptent "true" pour cocher et "false" pour décocher. Les boutons radio acceptent la valeur d'exportation de l'option à sélectionner -- la chaîne exportée est généralement visible dans les propriétés du champ PDF et est distincte de l'étiquette d'affichage.
//:path=/static-assets/pdf/content-code-examples/nodejs/how-to/nodejs-fill-pdf-form/field-types.js
const { PdfDocument, IronPdfGlobalConfig } = require("@ironsoftware/ironpdf");
IronPdfGlobalConfig.getConfig().licenseKey = process.env.IRONPDF_LICENSE_KEY;
async function handleFieldTypes() {
const pdf = await PdfDocument.fromFile("./forms/complex-form.pdf");
// Radio button -- use the field's export value, not its display label
await pdf.setFormFieldValue("gender", "Female");
// Case à cocher
await pdf.setFormFieldValue("termsAccepted", "true");
// Dropdown
await pdf.setFormFieldValue("preferredContact", "Email");
// Numeric field -- pass the number as a string
await pdf.setFormFieldValue("invoiceAmount", "1250.00");
// Date picker
await pdf.setFormFieldValue("appointmentDate", "2024-06-15");
await pdf.saveAs("./output/complex-form-filled.pdf");
}
handleFieldTypes().catch(console.error);
//:path=/static-assets/pdf/content-code-examples/nodejs/how-to/nodejs-fill-pdf-form/field-types.js
const { PdfDocument, IronPdfGlobalConfig } = require("@ironsoftware/ironpdf");
IronPdfGlobalConfig.getConfig().licenseKey = process.env.IRONPDF_LICENSE_KEY;
async function handleFieldTypes() {
const pdf = await PdfDocument.fromFile("./forms/complex-form.pdf");
// Radio button -- use the field's export value, not its display label
await pdf.setFormFieldValue("gender", "Female");
// Case à cocher
await pdf.setFormFieldValue("termsAccepted", "true");
// Dropdown
await pdf.setFormFieldValue("preferredContact", "Email");
// Numeric field -- pass the number as a string
await pdf.setFormFieldValue("invoiceAmount", "1250.00");
// Date picker
await pdf.setFormFieldValue("appointmentDate", "2024-06-15");
await pdf.saveAs("./output/complex-form-filled.pdf");
}
handleFieldTypes().catch(console.error);
Les champs de boîte de liste multi-sélection suivent le même modèle. Quand un champ permet plusieurs sélections, passez un tableau de chaînes plutôt qu'une seule valeur. Les champs de signature peuvent recevoir une chaîne d'image encodée en base64 représentant le graphique de la signature.
Si setFormFieldValue() ne semble pas changer la valeur d'un champ, vérifiez que le nom du champ correspond exactement — les noms de champs PDF sont sensibles à la casse. Utilisez getFormFieldNames() pour lister les noms réels dans le document.
Comment aplatir les champs de formulaire PDF après remplissage ?
Aplatir un formulaire PDF fusionne toutes les valeurs de champ dans le contenu statique de la page, supprimant la couche interactive. Le document résultant ne peut plus être édité, ce qui empêche les modifications accidentelles lors de la distribution et assure un rendu cohérent dans tous les visualisateurs PDF.
Appelez flattenAllFormFields() sur le document chargé après avoir défini toutes les valeurs des champs et avant de sauvegarder :
//:path=/static-assets/pdf/content-code-examples/nodejs/how-to/nodejs-fill-pdf-form/flatten-form.js
const { PdfDocument, IronPdfGlobalConfig } = require("@ironsoftware/ironpdf");
IronPdfGlobalConfig.getConfig().licenseKey = process.env.IRONPDF_LICENSE_KEY;
async function fillAndFlattenForm() {
const pdf = await PdfDocument.fromFile("./forms/contract.pdf");
// Fill the required fields
await pdf.setFormFieldValue("signerName", "Jane Doe");
await pdf.setFormFieldValue("signatureDate", "2024-06-15");
await pdf.setFormFieldValue("agreementAccepted", "true");
// Flatten -- converts interactive fields to static content
await pdf.flattenAllFormFields();
await pdf.saveAs("./output/contract-signed.pdf");
console.log("Contract flattened and saved.");
}
fillAndFlattenForm().catch(console.error);
//:path=/static-assets/pdf/content-code-examples/nodejs/how-to/nodejs-fill-pdf-form/flatten-form.js
const { PdfDocument, IronPdfGlobalConfig } = require("@ironsoftware/ironpdf");
IronPdfGlobalConfig.getConfig().licenseKey = process.env.IRONPDF_LICENSE_KEY;
async function fillAndFlattenForm() {
const pdf = await PdfDocument.fromFile("./forms/contract.pdf");
// Fill the required fields
await pdf.setFormFieldValue("signerName", "Jane Doe");
await pdf.setFormFieldValue("signatureDate", "2024-06-15");
await pdf.setFormFieldValue("agreementAccepted", "true");
// Flatten -- converts interactive fields to static content
await pdf.flattenAllFormFields();
await pdf.saveAs("./output/contract-signed.pdf");
console.log("Contract flattened and saved.");
}
fillAndFlattenForm().catch(console.error);
L'aplatissement est approprié pour les livraisons finales -- contrats après signature, certificats après émission, ou factures après approbation. Pour les documents qui nécessitent un examen supplémentaire avant la finalisation, ignorez flattenAllFormFields() et sauvegardez sans cela.
Quels sont les cas d'utilisation courants pour l'automatisation des formulaires PDF ?
Le remplissage automatique des formulaires élimine la saisie manuelle de données dans les flux de travail de documents à fort volume. Les scénarios suivants couvrent les schémas les plus fréquents que les développeurs mettent en œuvre avec IronPDF.
Traitement des applications : extraire les données des candidats à partir d'une base de données ou d'une API REST et remplir des formulaires PDF pour les services financiers, l'assurance ou les flux de travail d'acquisition gouvernementale. Combinez les formulaires remplis en utilisant l'exemple Fusionner les PDF pour produire un seul dossier de soumission multi-pages.
Génération de factures et de reçus : remplissez les modèles de factures avec des données de lignes de commande, des détails clients et des totaux calculés. Ajoutez des en-têtes et pieds de page en utilisant les techniques montrées dans l'exemple En-têtes et pieds de page HTML.
Génération de certificats et d'attestations : personnalisez les modèles de certificats avec les noms des récipiendaires, les dates d'achèvement et les titres des cours. Ajoutez de la sécurité en utilisant l'exemple Signatures numériques pour éviter la falsification après délivrance. La norme PDF/A est couramment requise pour l'archivage à long terme des certificats dans les industries réglementées.
Génération de rapports : remplissez des modèles de rapports avec des données analytiques ou les résultats d'enquête. Pour les cas où vous devez construire la mise en page du PDF à partir de zéro plutôt que de remplir un formulaire existant, consultez le tutoriel HTML vers PDF.
Quelles sont les prochaines étapes pour remplir des formulaires PDF dans Node.js ?
Ce guide a démontré comment charger un PDF, remplir des champs de texte, cases à cocher, listes déroulantes et boutons radio, aplatir le formulaire pour verrouiller les valeurs, et enregistrer le document complété. La même instance PdfDocument prend en charge d'autres opérations — ajoutez des signatures numériques, compressez la sortie, ou extrayez du texte — sans recharger le fichier.
Commencez un essai gratuit pour tester IronPDF dans votre projet, ou consultez les options de licence pour trouver le plan qui correspond à votre déploiement.
Prêt à voir ce que vous pouvez faire d'autre? Consultez la collection complète de tutoriels Node.js ici : HTML vers PDF dans Node.js
Questions Fréquemment Posées
Quels sont les prérequis nécessaires pour remplir des formulaires PDF en Node.js ?
Vous avez besoin de Node.js 18 ou supérieur, d'une clé de licence IronPDF (un essai gratuit est disponible), et du binaire IronPdfEngine. Le moteur est inclus avec le package @ironsoftware/ironpdf et téléchargé automatiquement lors de l'installation.
Comment installer IronPDF for Node.js ?
Exécutez npm install @ironsoftware/ironpdf dans le répertoire de votre projet. La commande installe le package et ses binaires spécifiques à la plate-forme pour Windows, Linux et macOS. Les déclarations de type TypeScript sont incluses.
Comment découvrir les noms de champ dans un formulaire PDF ?
Appelez await pdf.getFormFieldNames() après avoir chargé le PDF avec PdfDocument.fromFile(). La méthode renvoie un tableau de toutes les chaînes de noms de champ dans le document. Les noms de champ PDF sont sensibles à la casse, utilisez donc les chaînes exactes renvoyées.
Quel format de valeur les cases à cocher et les boutons radio acceptent-ils ?
Les cases à cocher acceptent la chaîne "true" pour cocher et "false" pour décocher. Les boutons radio acceptent la valeur d'exportation de l'option cible sous forme de chaîne. Utilisez getFormFieldNames() et inspectez les propriétés de champ PDF pour trouver la valeur d'exportation correcte.
Comment empêcher qu'un formulaire PDF rempli soit modifié ?
Appelez await pdf.flattenAllFormFields() après avoir défini toutes les valeurs des champs et avant saveAs(). L'aplatissement fusionne les valeurs des champs dans le contenu de page statique et supprime la couche de formulaire interactive. L'opération est irréversible sur le fichier enregistré.
Puis-je utiliser IronPDF for Node.js avec TypeScript ?
Oui. Le package @ironsoftware/ironpdf est livré avec des déclarations TypeScript (.d.ts files), donc vous obtenez une vérification complète des types et IntelliSense dans VS Code et d'autres éditeurs sans installer un package types à part.

