Comment remplir un formulaire PDF en Java (Tutoriel)
IronPDF permet aux développeurs Java de remplir des formulaires PDF par programmation en chargeant des PDF existants, en accédant aux champs de formulaire avec getForm(), en définissant des valeurs avec setFieldValue() et en enregistrant le document rempli. Cela simplifie l'automatisation du traitement documentaire dans les applications d'entreprise.
Démarrage rapide : Remplir un formulaire PDF en Java
```java {title="FillPDFForm.java"} //:path=/static-assets/pdf/content-code-examples/how-to/java-fill-pdf-form-tutorial/quickstart.java // 1. ajoutez la dépendance IronPDF à votre projet Maven // 2. chargez votre formulaire PDF PdfDocument form = PdfDocument.fromFile("form.pdf") ; // 3. remplir les champs d'un formulaire form.getForm().setFieldValue("firstname", "John") ; // 4. enregistrer le PDF rempli form.saveAs(Paths.get("filled_form.pdf")) ;
<div class="hsg-featured-snippet">
<h2>Comment remplir un formulaire PDF en Java</h2>
<ol>
<li><a class="js-modal-open" data-modal-id="download-modal" href="#download-modal">Installez la bibliothèque IronPDF Java via Maven</a></li>
<li>Chargez le PDF existant qui contient des champs de formulaire à l'aide de <code>PdfDocument.fromFile()</code></li>
<li>Accédez au formulaire avec la méthode <code>getForm()</code></li>
<li>Définissez les valeurs des champs en utilisant <code>setFieldValue(fieldName, value)</code></li>
<li>Enregistrez le document rempli avec <code>saveAs()</code></li>
</ol>
</div>
Cet article explique comment remplir des formulaires PDF par programmation en Java. Un scénario courant est lorsque qu'une application collecte les données des utilisateurs via une interface utilisateur qui doivent être conservées au format PDF pour archivage, conformité ou traitement en aval.
Après que les saisies utilisateur sont prises en compte, les applications doivent souvent injecter ces données directement dans des modèles PDF préexistants. De nombreuses bibliothèques PDF Java gèrent cette tâche, y compris [Apache PDFBox](https://pdfbox.apache.org), iText, et IronPDF. Ce guide explique comment utiliser IronPDF pour remplir des formulaires interactifs avec des champs texte, des cases à cocher, des boutons radio et des listes déroulantes. Pour les développeurs construisant des flux de travail de documents associés, voir le guide sur [la création de formulaires PDF de A à Z en Java](https://ironpdf.com/java/how-to/create-forms/).
## Qu'est-ce qu'IronPDF for Java?
IronPDF est une [bibliothèque Java PDF](https://ironpdf.com/java/) pour créer, éditer et manipuler des documents PDF. Elle s'intègre dans tout projet Java basé sur Maven et expose une API claire qui rend les tâches PDF courantes réalisables avec un minimum de code standard.
La bibliothèque couvre le cycle complet du PDF : rendu HTML vers PDF, lecture et écriture de données de formulaire, ajout de signatures numériques, application de paramètres de sécurité, compression de documents, et impression. Pour travailler spécifiquement avec des formulaires, IronPDF donne un accès par programmation à chaque type de champ dans un document PDF tout en préservant la mise en forme originale. Cela le rend bien adapté pour le traitement par lots de formulaires, le pré-remplissage de modèles avec des enregistrements de base de données, ou le remplissage de formulaires dans un flux de travail Java plus large. Consultez la [référence API Java IronPDF](https://ironpdf.com/java/object-reference/api/) pour une liste complète des classes et méthodes disponibles.
## Comment installer IronPDF dans un projet Maven?
Ajoutez le bloc de dépendances suivant à votre fichier `pom.xml` pour installer IronPDF for Java.
Ouvrez `pom.xml` et insérez la dépendance à l'intérieur de l'élément `<dependencies>`, puis exécutez `mvn install` pour télécharger la bibliothèque. Les versions disponibles sont listées sur [Maven Central](https://search.maven.org/artifact/com.ironsoftware/ironpdf).
```xml
//:path=/static-assets/pdf/content-code-examples/how-to/java-fill-pdf-form-tutorial/maven-dependency.xml
<dependency>
<groupId>com.ironsoftware</groupId>
<artifactId>ironpdf</artifactId>
<version>2024.9.1</version>
</dependency>
Après l'installation, importez com.ironsoftware.ironpdf.PdfDocument et com.ironsoftware.ironpdf.render.ChromePdfRenderOptions dans votre classe Java pour accéder à l'API de remplissage de formulaires. Pour des conseils de déploiement sur les plateformes cloud, consultez les guides pour AWS, Azure, et Google Cloud.
IronPdf.licenseKey avant le premier appel PdfDocument afin d'éviter les retards de vérification de licence lors de l'exécution.Comment créer et remplir un formulaire PDF en utilisant HTML en Java?
La manière la plus fiable de produire un PDF structuré de manière cohérente et remplissable est de définir le formulaire en HTML et de le rendre avec IronPDF. La bibliothèque convertit les éléments HTML <input> directement en champs de formulaire PDF interactifs.
Le code suivant crée un formulaire PDF à deux champs à partir d'une chaîne HTML puis remplit les deux champs :
//:path=/static-assets/pdf/content-code-examples/how-to/java-fill-pdf-form-tutorial/create-and-fill-form.java
import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.render.ChromePdfRenderOptions;
import java.io.IOException;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) throws IOException {
// Define an HTML form with two text input fields
String formHTML = "<html>"
+ "<body>"
+ "<h2>Editable PDF Form</h2>"
+ "<form>"
+ "First name: <br><input type='text' name='firstname' value=''><br>"
+ "Last name: <br><input type='text' name='lastname' value=''>"
+ "</form>"
+ "</body>"
+ "</html>";
// Enable HTML-to-form-field conversion during rendering
ChromePdfRenderOptions renderOptions = new ChromePdfRenderOptions();
renderOptions.setCreatePdfFormsFromHtml(true);
// Render HTML to PDF and save the blank template
PdfDocument.renderHtmlAsPdf(formHTML, renderOptions)
.saveAs(Paths.get("assets/BasicForm.pdf"));
// Load the template and fill in field values
PdfDocument form = PdfDocument.fromFile(Paths.get("assets/BasicForm.pdf"));
form.getForm().setFieldValue("firstname", "Minnie");
form.getForm().setFieldValue("lastname", "Mouse");
// Save the completed form to a new file
form.saveAs(Paths.get("assets/BasicForm_Filled.pdf"));
}
}
//:path=/static-assets/pdf/content-code-examples/how-to/java-fill-pdf-form-tutorial/create-and-fill-form.java
import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.render.ChromePdfRenderOptions;
import java.io.IOException;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) throws IOException {
// Define an HTML form with two text input fields
String formHTML = "<html>"
+ "<body>"
+ "<h2>Editable PDF Form</h2>"
+ "<form>"
+ "First name: <br><input type='text' name='firstname' value=''><br>"
+ "Last name: <br><input type='text' name='lastname' value=''>"
+ "</form>"
+ "</body>"
+ "</html>";
// Enable HTML-to-form-field conversion during rendering
ChromePdfRenderOptions renderOptions = new ChromePdfRenderOptions();
renderOptions.setCreatePdfFormsFromHtml(true);
// Render HTML to PDF and save the blank template
PdfDocument.renderHtmlAsPdf(formHTML, renderOptions)
.saveAs(Paths.get("assets/BasicForm.pdf"));
// Load the template and fill in field values
PdfDocument form = PdfDocument.fromFile(Paths.get("assets/BasicForm.pdf"));
form.getForm().setFieldValue("firstname", "Minnie");
form.getForm().setFieldValue("lastname", "Mouse");
// Save the completed form to a new file
form.saveAs(Paths.get("assets/BasicForm_Filled.pdf"));
}
}
Le premier bloc utilise ChromePdfRenderOptions avec setCreatePdfFormsFromHtml(true) pour indiquer au moteur de rendu de traiter les éléments HTML <input> comme des champs de formulaire PDF interactifs plutôt que comme du texte statique. Le PDF rendu est enregistré en tant que modèle réutilisable. Le deuxième bloc charge ce modèle, appelle getForm().setFieldValue() pour chaque champ par son nom, et écrit le résultat dans un fichier de sortie distinct, laissant le modèle d'origine intact pour une utilisation future.
À quoi ressemble le résultat ?
Le premier rendu produit un PDF avec deux champs de texte vides, entièrement modifiables dans tout lecteur PDF.

Une fois setFieldValue() exécuté, les deux champs sont renseignés avec les données fournies :

Comment remplir un formulaire PDF existant que je n'ai pas créé?
De nombreux flux de travail réels reçoivent des modèles PDF tiers (formulaires gouvernementaux, documents d'assurance, contrats fournisseurs) qui contiennent déjà des champs nommés. Le chargement et le remplissage de ces champs suivent le même processus : utilisez PdfDocument.fromFile() pour charger le document, puis getForm().setFieldValue() pour définir chaque champ par son nom.
//:path=/static-assets/pdf/content-code-examples/how-to/java-fill-pdf-form-tutorial/fill-existing-form.java
import com.ironsoftware.ironpdf.PdfDocument;
import java.io.IOException;
import java.nio.file.Paths;
public class FillExistingForm {
public static void main(String[] args) throws IOException {
// Load a third-party fillable PDF
PdfDocument form = PdfDocument.fromFile(Paths.get("templates/application.pdf"));
// Set text field values by field name
form.getForm().setFieldValue("applicant_name", "Jane Smith");
form.getForm().setFieldValue("date_of_birth", "1985-06-14");
form.getForm().setFieldValue("reference_number", "REF-2024-00421");
// Save the completed application
form.saveAs(Paths.get("output/application_filled.pdf"));
}
}
//:path=/static-assets/pdf/content-code-examples/how-to/java-fill-pdf-form-tutorial/fill-existing-form.java
import com.ironsoftware.ironpdf.PdfDocument;
import java.io.IOException;
import java.nio.file.Paths;
public class FillExistingForm {
public static void main(String[] args) throws IOException {
// Load a third-party fillable PDF
PdfDocument form = PdfDocument.fromFile(Paths.get("templates/application.pdf"));
// Set text field values by field name
form.getForm().setFieldValue("applicant_name", "Jane Smith");
form.getForm().setFieldValue("date_of_birth", "1985-06-14");
form.getForm().setFieldValue("reference_number", "REF-2024-00421");
// Save the completed application
form.saveAs(Paths.get("output/application_filled.pdf"));
}
}
Pour découvrir les noms de champs dans un PDF existant, ouvrez le document dans Adobe Acrobat Reader, faites un clic droit sur un champ et sélectionnez "Propriétés". Le nom du champ apparaît dans l'onglet Général. Alternativement, parcourez tous les champs par programmation :
//:path=/static-assets/pdf/content-code-examples/how-to/java-fill-pdf-form-tutorial/list-form-fields.java
import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.form.FormField;
import java.nio.file.Paths;
public class ListFormFields {
public static void main(String[] args) throws Exception {
PdfDocument form = PdfDocument.fromFile(Paths.get("templates/application.pdf"));
// Print the name and type of every form field
for (FormField field : form.getForm().getFields()) {
System.out.println("Field: " + field.getName()
+ " | Type: " + field.getType());
}
}
}
//:path=/static-assets/pdf/content-code-examples/how-to/java-fill-pdf-form-tutorial/list-form-fields.java
import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.form.FormField;
import java.nio.file.Paths;
public class ListFormFields {
public static void main(String[] args) throws Exception {
PdfDocument form = PdfDocument.fromFile(Paths.get("templates/application.pdf"));
// Print the name and type of every form field
for (FormField field : form.getForm().getFields()) {
System.out.println("Field: " + field.getName()
+ " | Type: " + field.getType());
}
}
}
PRINT des noms de champ avant l'écriture des données empêche setFieldValue() d'échouer silencieusement en cas de nom non correspondant. Les noms de champs dans les documents PDF sont sensibles à la casse ; ainsi, "firstname" et "FirstName" sont considérés comme des champs différents.
getForm().getFields() d'IronPDF renvoie une liste d'objets FormField. Chacun expose getName(), getType() et getValue(). Ceux-ci sont utiles lors de la construction de routines de remplissage de formulaire dynamiques qui lisent les noms de champs à partir d'une source de données externe telle qu'une base de données ou un fichier CSV.Comment remplir des cases à cocher et des boutons radio en Java?
Les champs de texte acceptent directement des valeurs de type chaîne, mais les cases à cocher et les boutons radio nécessitent des valeurs d'exportation spécifiques définies par le PDF au moment de la création. Utilisez setFieldValue() avec la chaîne de valeur d'exportation correcte pour chaque champ.
//:path=/static-assets/pdf/content-code-examples/how-to/java-fill-pdf-form-tutorial/fill-checkboxes-radio.java
import com.ironsoftware.ironpdf.PdfDocument;
import java.nio.file.Paths;
public class FillCheckboxesAndRadio {
public static void main(String[] args) throws Exception {
PdfDocument form = PdfDocument.fromFile(Paths.get("templates/survey.pdf"));
// Check a checkbox by setting its exported value (often "Yes" or "On")
form.getForm().setFieldValue("agree_terms", "Yes");
// Select a radio button option by its exported value
form.getForm().setFieldValue("preferred_contact", "email");
form.saveAs(Paths.get("output/survey_filled.pdf"));
}
}
//:path=/static-assets/pdf/content-code-examples/how-to/java-fill-pdf-form-tutorial/fill-checkboxes-radio.java
import com.ironsoftware.ironpdf.PdfDocument;
import java.nio.file.Paths;
public class FillCheckboxesAndRadio {
public static void main(String[] args) throws Exception {
PdfDocument form = PdfDocument.fromFile(Paths.get("templates/survey.pdf"));
// Check a checkbox by setting its exported value (often "Yes" or "On")
form.getForm().setFieldValue("agree_terms", "Yes");
// Select a radio button option by its exported value
form.getForm().setFieldValue("preferred_contact", "email");
form.saveAs(Paths.get("output/survey_filled.pdf"));
}
}
La valeur d'exportation d'une case à cocher est généralement "Yes", "On" ou une chaîne personnalisée définie par l'auteur du formulaire. Pour les groupes de boutons radio, chaque option du groupe partage le même nom de champ mais possède une valeur d'exportation unique. Utilisez la technique de liste de champs de la section précédente pour confirmer les valeurs d'exportation exactes avant d'écrire des routines de remplissage automatisées.
setFieldValue() n'apparaît pas pour cocher une case ou sélectionner un bouton radio, la chaîne de valeur d'exportation est probablement erronée. Répertoriez le champ avec getFields() et vérifiez getValue() sur une copie du PDF vérifiée manuellement pour récupérer la chaîne correcte.Comment remplir des listes déroulantes dans un formulaire PDF en utilisant Java?
Les champs de liste déroulante (appelés aussi champs de boîte combo) utilisent la même API que les champs texte. Transmettez la valeur d'exportation de l'option sous forme de chaîne à setFieldValue(). La valeur d'exportation est généralement le texte visible de l'option, sauf si l'auteur du formulaire a défini une valeur sous-jacente distincte.
//:path=/static-assets/pdf/content-code-examples/how-to/java-fill-pdf-form-tutorial/fill-dropdown.java
import com.ironsoftware.ironpdf.PdfDocument;
import java.nio.file.Paths;
public class FillDropdown {
public static void main(String[] args) throws Exception {
PdfDocument form = PdfDocument.fromFile(Paths.get("templates/registration.pdf"));
// Set a dropdown/combo box field to a specific option
form.getForm().setFieldValue("country", "United States");
// Set a list box field (multi-select may require comma-separated values)
form.getForm().setFieldValue("subscription_tier", "Professional");
form.saveAs(Paths.get("output/registration_filled.pdf"));
}
}
//:path=/static-assets/pdf/content-code-examples/how-to/java-fill-pdf-form-tutorial/fill-dropdown.java
import com.ironsoftware.ironpdf.PdfDocument;
import java.nio.file.Paths;
public class FillDropdown {
public static void main(String[] args) throws Exception {
PdfDocument form = PdfDocument.fromFile(Paths.get("templates/registration.pdf"));
// Set a dropdown/combo box field to a specific option
form.getForm().setFieldValue("country", "United States");
// Set a list box field (multi-select may require comma-separated values)
form.getForm().setFieldValue("subscription_tier", "Professional");
form.saveAs(Paths.get("output/registration_filled.pdf"));
}
}
Lorsque la valeur d'exportation du menu déroulant diffère de l'étiquette visible, utilisez getFields() pour inspecter les options disponibles du champ. Passer une valeur qui ne correspond à aucune option dans la définition du champ laisse la sélection inchangée sans générer d'exception, donc vérifier les valeurs d'exportation avant une exécution par lots évite les pertes de données silencieuses.
FormField en FormComboBoxField et appelez getOptions(). Cela retourne la liste des valeurs d'exportation valides pour cette liste déroulante.Comment aplatir un formulaire PDF rempli en Java?
L'aplatissement convertit tous les champs de formulaire en contenu statique, non modifiable. Cela empêche les destinataires de modifier les données soumises et est requis pour de nombreux cas d'archivage et de conformité. IronPDF prend en charge l'aplatissement des formulaires dans le cadre de ses capacités de manipulation PDF.
//:path=/static-assets/pdf/content-code-examples/how-to/java-fill-pdf-form-tutorial/flatten-form.java
import com.ironsoftware.ironpdf.PdfDocument;
import java.nio.file.Paths;
public class FlattenForm {
public static void main(String[] args) throws Exception {
PdfDocument form = PdfDocument.fromFile(Paths.get("assets/BasicForm_Filled.pdf"));
// Flatten all form fields -- values become static text
form.getForm().flatten();
form.saveAs(Paths.get("output/BasicForm_Archived.pdf"));
}
}
//:path=/static-assets/pdf/content-code-examples/how-to/java-fill-pdf-form-tutorial/flatten-form.java
import com.ironsoftware.ironpdf.PdfDocument;
import java.nio.file.Paths;
public class FlattenForm {
public static void main(String[] args) throws Exception {
PdfDocument form = PdfDocument.fromFile(Paths.get("assets/BasicForm_Filled.pdf"));
// Flatten all form fields -- values become static text
form.getForm().flatten();
form.saveAs(Paths.get("output/BasicForm_Archived.pdf"));
}
}
Une fois flatten() exécuté, aucun champ de formulaire interactif ne subsiste dans le PDF de sortie. La taille du document diminue généralement car les calques de superposition des champs de formulaire sont supprimés. Les PDF aplatis sont sûrs à distribuer sans risque que les destinataires modifient les valeurs soumises.
Quelles sont les prochaines étapes pour le remplissage de formulaires PDF en Java?
IronPDF fournit une API concentrée et exigeant peu de code standard pour remplir les formulaires PDF en Java. La méthode getForm() permet d'accéder directement aux champs de texte, aux cases à cocher, aux boutons radio et aux listes déroulantes. Lorsque l'archivage est requis, flatten() verrouille toutes les données renseignées en tant que contenu statique.
Pour les étapes suivantes dans votre flux de travail de document PDF, explorez ces guides :
- Créer des formulaires PDF à partir de HTML en Java : construire des modèles de formulaires personnalisés par programmation
- Conversion de HTML en PDF en Java : rendre des pages HTML complètes et des fragments au format PDF
- Sécurité et protection par mot de passe PDF : restreindre l'accès aux formulaires remplis avant distribution
- Signatures numériques pour PDF en Java : signer des formulaires complétés pour établir l'authenticité
- Référence API Java IronPDF : documentation complète des classes et méthodes
Commencez un essai gratuit de IronPDF for Java pour tester le remplissage de formulaire dans votre propre projet. Lorsque vous êtes prêt à déployer, consultez les options de licence IronPDF pour trouver un plan adapté aux besoins de votre équipe.
Questions Fréquemment Posées
Quelles sont les étapes de base pour remplir un formulaire PDF en Java ?
Ajoutez la dépendance Maven IronPDF, chargez votre PDF avec PdfDocument.fromFile(), accédez aux champs de formulaire avec getForm(), appelez setFieldValue(fieldName, value) pour chaque champ, et enregistrez le résultat avec saveAs().
Comment trouver les noms des champs dans un PDF existant ?
Ouvrez le PDF dans Adobe Acrobat Reader, cliquez droit sur n'importe quel champ, et sélectionnez Propriétés. Le nom du champ apparaît dans l'onglet Général. Alternativement, appelez getForm().getFields() pour itérer tous les champs et imprimer chaque getName() et getType() de manière programmatique.
Comment remplir des cases à cocher et des boutons radio en Java ?
Utilisez setFieldValue() avec la chaîne de valeur d'exportation du champ. Les valeurs d'exportation pour les cases à cocher sont typiquement Yes ou On. Pour les groupes de boutons radio, chaque option partage le même nom de champ mais a une valeur d'exportation unique. Si le champ ne répond pas, inspectez getValue() sur une copie cochée manuellement du PDF pour trouver la bonne chaîne.
Comment remplir un champ de liste déroulante ?
Appelez setFieldValue(fieldName, optionValue) avec la valeur d'exportation de l'option. La valeur d'exportation est typiquement le texte de l'option visible. Pour lister les options disponibles de manière programmatique, convertissez le FormField en FormComboBoxField et appelez getOptions().
Que fait l'aplatissement d'un formulaire PDF ?
L'aplatissement convertit tous les champs de formulaire interactifs en contenu statique non modifiable. Appelez getForm().flatten() avant d'enregistrer. Le PDF résultant ne peut pas être édité par les destinataires, ce qui est requis pour de nombreux flux de travail d'archivage et de conformité.
IronPDF peut-il remplir les formulaires créés par d'autres outils ?
Oui. PdfDocument.fromFile() charge n'importe quel PDF remplissable standard, peu importe comment il a été créé. Utilisez getForm().getFields() pour inspecter les noms de champs avant d'appeler setFieldValue(), puisque les noms de champs sont sensibles à la casse et varient selon l'auteur du formulaire.


