Comment remplir les champs d'un formulaire PDF en Python
Remplissez des formulaires PDF de manière programmatique en Python avec IronPDF : chargez un PDF existant, localisez chaque champ par nom, attribuez des valeurs et enregistrez le résultat en quelques lignes.
Démarrage rapide : Remplir les champs d'un formulaire PDF
:path=/static-assets/ironpdf-python/content-code-examples/how-to/python-fill-pdf-form/quickstart.py
1. Install IronPDF: `pip install ironpdf`
2. Load your PDF: `form_document = PdfDocument.FromFile("form.pdf")`
3. Find form field: `field = form_document.Form.FindFormField("fieldname")`
4. Set field value: `field.Value = "Your Value"`
5. Save filled PDF: `form_document.SaveAs("filled_form.pdf")`
// CET EXTRAIT DE CODE N'EST PAS DISPONIBLE !
1. Install IronPDF: `pip install ironpdf`
2. Load your PDF: `form_document = PdfDocument.FromFile("form.pdf")`
3. Find form field: `field = form_document.Form.FindFormField("fieldname")`
4. Set field value: `field.Value = "Your Value"`
5. Save filled PDF: `form_document.SaveAs("filled_form.pdf")`
Comment remplir les champs d'un formulaire PDF en Python
- Installez la bibliothèque IronPDF for Python
- Chargez un document PDF existant qui contient des champs de formulaire
- Accéder à un champ de formulaire par nom en utilisant la méthode
FindFormFieldde l'attribut Form - Attribuer une nouvelle valeur à l'attribut Value du champ
- Exporter le document modifié en utilisant
SaveAs
La collecte de données via une interface utilisateur web puis la génération d'un PDF rempli pour l'archivage ou le traitement en aval est un modèle courant d'automatisation de documents. Plutôt que de transcrire manuellement des données dans des formulaires PDF, les scripts Python peuvent gérer cela instantanément : lecture des noms de champs, remplissage des valeurs et production de documents finis prêts pour le stockage ou la distribution.
IronPDF rend ce flux de travail direct : une API pour créer des formulaires à partir de HTML, une méthode pour localiser un champ par nom, une propriété pour définir sa valeur. Les formulaires PDF dans la nature contiennent plus que des entrées de texte. Les cases à cocher, les boutons radio et les menus déroulants sont tous pris en charge via la même approche FindFormField et Value. Le reste de ce guide parcourt les scénarios clés : générer un formulaire à partir de balisage HTML, remplir les champs d'un document existant, lire tous les types de champs et effectuer des remplissages massifs à partir d'une source de données.
Comment créer et remplir un formulaire PDF à l'aide de HTML en Python ?
IronPDF peut convertir les éléments HTML <input> directement en champs PDF modifiables, vous offrant ainsi un chemin direct entre une définition de formulaire de type web et un document PDF remplissable. Vous pouvez concevoir des formulaires avec du HTML et du CSS familiers, puis les remplir immédiatement sans étape manuelle intermédiaire.
L'exemple ci-dessous convertit un formulaire HTML en PDF, puis remplit les champs firstname et lastname avant d'enregistrer le résultat.
:path=/static-assets/ironpdf-python/content-code-examples/how-to/python-fill-pdf-form/fill-form-from-html.py
from ironpdf import *
# Define HTML content for a simple form
form_html = """
<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>
"""
# Instantiate a PDF renderer
renderer = ChromePdfRenderer()
# Enable HTML form-to-PDF-field conversion
renderer.RenderingOptions.CreatePdfFormsFromHtml = True
# Render the HTML content to a PDF file
renderer.RenderHtmlAsPdf(form_html).SaveAs("BasicForm.pdf")
# Load the created PDF document
form_document = PdfDocument.FromFile("BasicForm.pdf")
# Access the "firstname" field and set its value
first_name_field = form_document.Form.FindFormField("firstname")
first_name_field.Value = "Minnie"
print("FirstNameField value: {}".format(first_name_field.Value))
# Access the "lastname" field and set its value
last_name_field = form_document.Form.FindFormField("lastname")
last_name_field.Value = "Mouse"
print("LastNameField value: {}".format(last_name_field.Value))
# Save the filled form
form_document.SaveAs("FilledForm.pdf")
// CET EXTRAIT DE CODE N'EST PAS DISPONIBLE !
from ironpdf import *
# Define HTML content for a simple form
form_html = """
<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>
"""
# Instantiate a PDF renderer
renderer = ChromePdfRenderer()
# Enable HTML form-to-PDF-field conversion
renderer.RenderingOptions.CreatePdfFormsFromHtml = True
# Render the HTML content to a PDF file
renderer.RenderHtmlAsPdf(form_html).SaveAs("BasicForm.pdf")
# Load the created PDF document
form_document = PdfDocument.FromFile("BasicForm.pdf")
# Access the "firstname" field and set its value
first_name_field = form_document.Form.FindFormField("firstname")
first_name_field.Value = "Minnie"
print("FirstNameField value: {}".format(first_name_field.Value))
# Access the "lastname" field and set its value
last_name_field = form_document.Form.FindFormField("lastname")
last_name_field.Value = "Mouse"
print("LastNameField value: {}".format(last_name_field.Value))
# Save the filled form
form_document.SaveAs("FilledForm.pdf")
Définir CreatePdfFormsFromHtml sur True dans l'attribut RenderingOptions indique au moteur de rendu de traduire chaque élément <input> du code HTML en un champ PDF interactif correspondant. Sans ce drapeau, les entrées de texte sont rendues comme des éléments visuels statiques et ne peuvent pas être remplies de manière programmatique.
Après le rendu, PdfDocument.FromFile recharge le fichier enregistré en mémoire. La méthode FindFormField accepte l'attribut name du champ sous forme de chaîne et renvoie un objet FormField. L'affectation à Value écrit les données dans le champ. L'appel SaveAs écrit le document modifié sur le disque.
name soient courts et compatibles avec les URL. Les espaces et les caractères spéciaux dans les noms de champs fonctionnent mais peuvent compliquer les recherches en aval FindFormField.À quoi ressemble le formulaire vide avant remplissage ?

Le PDF rendu préserve la disposition visuelle du formulaire HTML. Chaque entrée de texte apparaît comme un champ cliquable et éditable. Lorsque le formulaire est ouvert dans un lecteur PDF, les utilisateurs peuvent encore saisir manuellement dans les champs, ou ceux-ci peuvent être remplis via l'API comme montré ci-dessus.
À quoi ressemble le formulaire complet après remplissage ?

Le document rempli montre les valeurs écrites dans chaque champ. La structure du formulaire et l'interactivité des champs sont entièrement intactes : le PDF peut être sauvé tel quel pour l'archivage, ou aplati pour verrouiller les valeurs en place pour la distribution.
Comment remplir les champs d'un document PDF existant ?
De nombreux flux de travail réels impliquent des formulaires PDF créés dans Adobe Acrobat, Word, ou d'autres outils. IronPDF peut charger n'importe quel PDF contenant des champs AcroForm et les remplir à l'aide des mêmes API FindFormField et Value que celles utilisées lors de la création de formulaires à partir de HTML. AcroForm est le format de formulaire interactif standard défini dans la spécification PDF et est pris en charge par tous les principaux lecteurs PDF.
:path=/static-assets/ironpdf-python/content-code-examples/how-to/python-fill-pdf-form/fill-existing-form.py
from ironpdf import *
# Load a pre-existing PDF with form fields
form_document = PdfDocument.FromFile("existing_form.pdf")
# Enumerate available field names (helpful when exploring an unfamiliar form)
for field in form_document.Form.Fields:
print("Field name:", field.Name, "| Current value:", field.Value)
# Fill a specific field by name
applicant_name_field = form_document.Form.FindFormField("applicant_name")
applicant_name_field.Value = "Jane Smith"
# Fill a second field
date_field = form_document.Form.FindFormField("application_date")
date_field.Value = "2026-05-03"
# Save the filled document
form_document.SaveAs("submitted_application.pdf")
// CET EXTRAIT DE CODE N'EST PAS DISPONIBLE !
from ironpdf import *
# Load a pre-existing PDF with form fields
form_document = PdfDocument.FromFile("existing_form.pdf")
# Enumerate available field names (helpful when exploring an unfamiliar form)
for field in form_document.Form.Fields:
print("Field name:", field.Name, "| Current value:", field.Value)
# Fill a specific field by name
applicant_name_field = form_document.Form.FindFormField("applicant_name")
applicant_name_field.Value = "Jane Smith"
# Fill a second field
date_field = form_document.Form.FindFormField("application_date")
date_field.Value = "2026-05-03"
# Save the filled document
form_document.SaveAs("submitted_application.pdf")
Il est utile de répéter form_document.Form.Fields avant de remplir les champs lorsque l'on travaille avec des formulaires dont les noms de champs ne sont pas documentés. La boucle imprime chaque nom de champ et sa valeur actuelle, fournissant une carte complète de ce que le formulaire attend avant que toute valeur ne soit écrite.
Comment travailler avec des cases à cocher et d'autres types de champs ?
Les champs de texte sont l'élément de formulaire le plus courant, mais les formulaires réels incluent des cases à cocher, des boutons radio et des listes déroulantes. IronPDF expose toutes ces fonctionnalités via la même collection Form.Fields. La propriété Value accepte la chaîne appropriée pour chaque type.
Le tableau ci-dessous montre les valeurs acceptées pour les trois types de champs non-texte les plus courants :
| Type de champ | Type d'entrée HTML | Valeur à définir | Remarques |
|---|---|---|---|
| Case à cocher | | "true" ou "false" | Insensible à la casse; utilisez la chaîne, pas le booléen |
| Bouton radio | | L'attribut value de l'option à sélectionner | Même nom, valeurs différentes par option |
| Liste déroulante (boîte combo) | | Le texte d'affichage de l'option désirée | Doit correspondre exactement à une option existante |
:path=/static-assets/ironpdf-python/content-code-examples/how-to/python-fill-pdf-form/fill-field-types.py
from ironpdf import *
# Load a form with multiple field types
form_document = PdfDocument.FromFile("application_form.pdf")
# Fill a text field
form_document.Form.FindFormField("full_name").Value = "Alex Rivera"
# Check a checkbox (use string "true")
form_document.Form.FindFormField("agree_terms").Value = "true"
# Select a radio button option by its value attribute
form_document.Form.FindFormField("employment_status").Value = "full_time"
# Select a dropdown option by display text
form_document.Form.FindFormField("country").Value = "United States"
form_document.SaveAs("completed_application.pdf")
// CET EXTRAIT DE CODE N'EST PAS DISPONIBLE !
from ironpdf import *
# Load a form with multiple field types
form_document = PdfDocument.FromFile("application_form.pdf")
# Fill a text field
form_document.Form.FindFormField("full_name").Value = "Alex Rivera"
# Check a checkbox (use string "true")
form_document.Form.FindFormField("agree_terms").Value = "true"
# Select a radio button option by its value attribute
form_document.Form.FindFormField("employment_status").Value = "full_time"
# Select a dropdown option by display text
form_document.Form.FindFormField("country").Value = "United States"
form_document.SaveAs("completed_application.pdf")
Lors de l'itération de form_document.Form.Fields, chaque objet FormField expose une propriété Name et une propriété Value. Pour les groupes radio et les listes déroulantes, la commande PRINT du Value existant avant l'écriture vous indiquera la sélection actuelle et confirmera le format attendu pour ce champ.
FindFormField renvoie None, le nom du champ n'existe pas dans le document. PRINT tous les noms via form_document.Form.Fields pour vérifier l'orthographe et confirmer que le champ est présent. Les noms de champs sont sensibles à la casse.Comment remplir des formulaires en bulk à partir d'une source de données ?
Générer un PDF rempli par enregistrement à partir d'un tableur ou d'une requête de base de données est l'une des raisons les plus courantes pour lesquelles les équipes se tournent vers le remplissage de formulaires programmatique. IronPDF gère cela en traitant chaque opération de remplissage comme sans état : chargez le modèle, remplissez les champs, sauvegardez sous un nom unique et répétez.
:path=/static-assets/ironpdf-python/content-code-examples/how-to/python-fill-pdf-form/bulk-fill-forms.py
from ironpdf import *
# Sample data records (replace with database or CSV source)
applicants = [
{"name": "Alice Johnson", "id": "A001", "date": "2026-05-03"},
{"name": "Bob Williams", "id": "B002", "date": "2026-05-03"},
{"name": "Carol Davis", "id": "C003", "date": "2026-05-03"},
]
for applicant in applicants:
# Load template from disk on each iteration to avoid cross-contamination
form_document = PdfDocument.FromFile("application_template.pdf")
# Fill each field from the data record
form_document.Form.FindFormField("applicant_name").Value = applicant["name"]
form_document.Form.FindFormField("applicant_id").Value = applicant["id"]
form_document.Form.FindFormField("submission_date").Value = applicant["date"]
# Save each filled form with a unique filename
output_path = f"output/application_{applicant['id']}.pdf"
form_document.SaveAs(output_path)
print(f"Saved: {output_path}")
// CET EXTRAIT DE CODE N'EST PAS DISPONIBLE !
from ironpdf import *
# Sample data records (replace with database or CSV source)
applicants = [
{"name": "Alice Johnson", "id": "A001", "date": "2026-05-03"},
{"name": "Bob Williams", "id": "B002", "date": "2026-05-03"},
{"name": "Carol Davis", "id": "C003", "date": "2026-05-03"},
]
for applicant in applicants:
# Load template from disk on each iteration to avoid cross-contamination
form_document = PdfDocument.FromFile("application_template.pdf")
# Fill each field from the data record
form_document.Form.FindFormField("applicant_name").Value = applicant["name"]
form_document.Form.FindFormField("applicant_id").Value = applicant["id"]
form_document.Form.FindFormField("submission_date").Value = applicant["date"]
# Save each filled form with a unique filename
output_path = f"output/application_{applicant['id']}.pdf"
form_document.SaveAs(output_path)
print(f"Saved: {output_path}")
Charger le modèle à l'intérieur de la boucle, plutôt qu'une fois avant, empêche les valeurs de champ de s'accumuler sur plusieurs itérations. Chaque appel à PdfDocument.FromFile produit une nouvelle copie du modèle, de sorte que le remplissage d'un enregistrement n'affecte pas le suivant.
PdfDocument.FromFile et d'utiliser un mécanisme de copie si l'API le prend en charge. Testez les deux approches par rapport à vos exigences de volume avant de déployer.IronPDF n'impose pas de limite artificielle sur le nombre de documents qu'un script peut générer en une seule exécution. Le débit est déterminé par la mémoire disponible et la vitesse d'I/O de la destination de sortie. Pour les lots très volumineux, l'écriture sur un SSD local puis le transfert vers un stockage réseau est plus rapide que l'écriture directement sur un partage réseau.
Comment aplatir un formulaire PDF rempli ?
L'aplatissement convertit les champs de formulaire interactifs en contenu de page statique, verrouillant les valeurs actuelles en place. Un PDF aplati est le bon choix pour l'archivage, l'impression ou l'envoi à des destinataires qui ne doivent pas modifier les valeurs des champs.
IronPDF fournit une méthode de mise à plat des champs de formulaire qui fonctionne sur tout PdfDocument chargé. Appelez-la après avoir rempli les champs, puis enregistrez le résultat.
:path=/static-assets/ironpdf-python/content-code-examples/how-to/python-fill-pdf-form/flatten-form.py
from ironpdf import *
# Load and fill a form
form_document = PdfDocument.FromFile("application_template.pdf")
form_document.Form.FindFormField("full_name").Value = "Jordan Lee"
form_document.Form.FindFormField("application_date").Value = "2026-05-03"
# Flatten all form fields to lock values as static content
form_document.Form.Flatten()
# Save the flattened, non-editable PDF
form_document.SaveAs("archived_application.pdf")
// CET EXTRAIT DE CODE N'EST PAS DISPONIBLE !
from ironpdf import *
# Load and fill a form
form_document = PdfDocument.FromFile("application_template.pdf")
form_document.Form.FindFormField("full_name").Value = "Jordan Lee"
form_document.Form.FindFormField("application_date").Value = "2026-05-03"
# Flatten all form fields to lock values as static content
form_document.Form.Flatten()
# Save the flattened, non-editable PDF
form_document.SaveAs("archived_application.pdf")
Après Flatten(), le document ne contient plus d'objets de champ interactifs. Les systèmes en aval qui reçoivent le fichier voient un contenu textuel ordinaire plutôt que des widgets de formulaire. Cela est important pour la conformité archivistique des PDF/A et pour prévenir les modifications non intentionnelles dans les pipelines de révision à étapes multiples.
Comment installer IronPDF for Python?
IronPDF est disponible sur PyPI. Installez-le avec pip :
pip install ironpdf
Après l'installation, importez la bibliothèque en haut de chaque script avec from ironpdf import *. Une licence d'essai gratuite est disponible pour évaluation. Les déploiements en production nécessitent une clé de licence commerciale définie via la propriété License.LicenseKey avant toute opération sur les PDF.
Quelles sont les prochaines étapes pour l'automatisation des formulaires PDF en Python ?
Ce guide a couvert la création de formulaires PDF à partir de HTML, le remplissage de champs dans des documents existants, le travail avec des cases à cocher et des champs déroulants, la génération de lots de formulaires remplis à partir d'enregistrements de données et l'aplatissement des PDF remplis pour l'archivage. Chaque technique utilise la même API de base : FindFormField pour localiser un champ par son nom, Value pour attribuer des données et SaveAs pour écrire le résultat.
Pour explorer les capacités connexes dans IronPDF for Python :
- Créez des formulaires PDF à partir de modèles HTML : concevez des mises en page complètes de formulaires en utilisant HTML et CSS
- Modifiez et remplissez des formulaires PDF existants : travaillez avec les champs AcroForm dans des documents créés en dehors d'IronPDF
- Aplatissez les champs de formulaire PDF : verrouillez les valeurs des champs en place pour l'archivage ou la distribution prête à l'impression
- Extrait le texte et les images des PDF : récupérez les données des documents remplis
- Guide de conversion HTML en PDF : couverture approfondie du pipeline de rendu utilisé par IronPDF
- Explorez les exemples de code source IronPDF Python sur GitHub : code exécutable pour tous les scénarios de ce guide
Commencez un essai gratuit pour tester le remplissage de formulaires dans votre propre projet Python. Lorsque vous êtes prêt à déployer, consultez les options de licence pour les forfaits développeur individuel et entreprise.
Questions Fréquemment Posées
Quelles sont les étapes de base pour remplir un formulaire PDF de manière programmatique en Python ?
Installez IronPDF avec pip install ironpdf, chargez votre PDF à l'aide de PdfDocument.FromFile(), trouvez le champ cible avec form_document.Form.FindFormField(), affectez une valeur à field.Value, puis enregistrez avec SaveAs().
Comment puis-je accéder à des champs de formulaire spécifiques dans un document PDF et les modifier ?
Utilisez la méthode FindFormField sur l'attribut Form d'un PdfDocument chargé, en passant le nom du champ en tant que chaîne. La méthode renvoie un objet FormField dont la propriété Value peut être lue ou définie.
Comment puis-je remplir les cases à cocher et les champs déroulants avec IronPDF ?
Pour les cases à cocher, définissez Value sur la chaîne "true" ou "false". Pour les boutons radio, définissez Value sur l'attribut de valeur de l'option souhaitée. Pour les listes déroulantes, définissez Value sur le texte d'affichage exact de l'option que vous souhaitez sélectionner.
Puis-je automatiser le remplissage de formulaires PDF en masse pour plusieurs documents ?
Oui. Chargez le modèle à l'intérieur d'une boucle avec PdfDocument.FromFile() à chaque itération pour obtenir une copie neuve, remplissez les champs à partir de votre source de données, et enregistrez chaque résultat avec un nom de fichier unique à l'aide de SaveAs().
Qu'est-ce que l'aplatissement de formulaire et quand devrais-je l'utiliser ?
L'aplatissement convertit les champs de formulaire interactifs en contenu de page statique, verrouillant les valeurs en place. Appelez form_document.Form.Flatten() avant de sauvegarder lorsque le document est destiné à l'archivage, à l'impression ou à la distribution à des destinataires qui ne doivent pas modifier les valeurs des champs.
Que se passe-t-il si FindFormField ne peut pas trouver un champ ?
Si aucun champ avec le nom donné n'existe, FindFormField renvoie None. Itérez form_document.Form.Fields pour imprimer tous les noms de champs disponibles et confirmez l'orthographe correcte. Les noms des champs sont sensibles à la casse.
Quels types de formulaires PDF IronPDF prend-il en charge ?
IronPDF prend en charge les champs AcroForm, le format standard de formulaire interactif utilisé par Adobe Acrobat et la plupart des outils de création PDF. Les PDF numérisés et les documents image uniquement ne contiennent pas de champs AcroForm et nécessitent un traitement OCR avant que l'extraction de texte soit possible.

