Wie man PDF-Formularfelder in Python ausfüllt
Füllen Sie PDF-Formulare programmatisch in Python mit IronPDF aus: Laden Sie ein bestehendes PDF, lokalisieren Sie jedes Feld nach Name, weisen Sie Werte zu und speichern Sie das Ergebnis in nur wenigen Zeilen.
Schnellstart: PDF-Formularfelder ausfüllen
: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")`
// DIESE CODE-AUSZUG IST NICHT VERFÜGBAR!
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")`
Wie man PDF-Formularfelder in Python ausfüllt
- Installieren Sie die IronPDF Python-Bibliothek
- Laden Sie ein bestehendes PDF-Dokument, das Formularfelder enthält
- Greifen Sie mit der
FindFormField-Methode des Form-Attributes auf ein Formularfeld nach Name zu - Weisen Sie dem Value-Attribut des Feldes einen neuen Wert zu
- Exportieren Sie das modifizierte Dokument mit
SaveAs
Das Sammeln von Daten über eine Weboberfläche und das anschließende Generieren eines ausgefüllten PDFs zur Archivierung oder nachgelagerter Verarbeitung ist ein gängiges Dokumentenautomatisierungsmuster. Anstatt Daten manuell in PDF-Formulare zu transkribieren, können Python-Skripte dies sofort erledigen: Lesen von Feldnamen, Ausfüllen von Werten und Erstellen fertiger Dokumente, die für die Speicherung oder Verteilung bereit sind.
IronPDF macht diesen Workflow direkt: Eine API, um Formulare aus HTML zu erstellen, eine Methode, um ein Feld nach Namen zu lokalisieren, eine Eigenschaft, um seinen Wert zu setzen. PDF-Formulare in der freien Wildbahn enthalten mehr als Texteingaben. Kontrollkästchenen, Optionsfelder und Dropdown-Felder werden alle über denselben Ansatz mit FindFormField und Value unterstützt. Der Rest dieses Leitfadens führt durch die wichtigsten Szenarien: Erstellen eines Formulars aus HTML-Markup, Ausfüllen von Feldern in einem bestehenden Dokument, Lesen aller Feldtypen und Durchführen von Massenausfüllungen aus einer Datenquelle.
Wie erstelle und fülle ich ein PDF-Formular mit HTML in Python?
IronPDF kann HTML-<input>-Elemente direkt in bearbeitbare PDF-Felder konvertieren und bietet Ihnen so einen direkten Weg von einer Formular-Definition im Web-Stil zu einem ausfüllbaren PDF-Dokument. Sie können Formulare mit vertrautem HTML und CSS gestalten und dann sofort ausfüllen, ohne einen Zwischenstopp manuell zu machen.
Das folgende Beispiel rendert ein HTML-Formular als PDF, füllt dann die Felder firstname und lastname aus und speichert anschließend das Ergebnis.
: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")
// DIESE CODE-AUSZUG IST NICHT VERFÜGBAR!
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")
Durch das Setzen von CreatePdfFormsFromHtml auf True im Attribut RenderingOptions wird der Renderer angewiesen, jedes <input>-Element im HTML in ein entsprechendes interaktives PDF-Feld zu übersetzen. Ohne dieses Flag werden Texteingaben als statische visuelle Elemente gerendert und können nicht programmatisch ausgefüllt werden.
Nach der Darstellung lädt PdfDocument.FromFile die gespeicherte Datei wieder in den Speicher. Die FindFormField-Methode akzeptiert das name-Attribut des Feldes als Zeichenfolge und gibt ein FormField-Objekt zurück. Die Zuweisung an Value schreibt die Daten in das Feld. Der Aufruf SaveAs schreibt das geänderte Dokument auf die Festplatte.
name kurz und URL-sicher zu halten. Leerzeichen und Sonderzeichen in Feldnamen funktionieren zwar, können aber nachgelagerte FindFormField-Abfragen erschweren.Wie sieht das leere Formular vor dem Ausfüllen aus?

Das gerenderte PDF behält das visuelle Layout des HTML-Formulars bei. Jede Texteingabe erscheint als klickbares, bearbeitbares Feld. Beim Öffnen des Formulars in einem PDF-Reader können Benutzer weiterhin manuell in die Felder tippen, oder die Felder können über die API wie oben gezeigt ausgefüllt werden.
Wie sieht das ausgefüllte Formular nach dem Ausfüllen aus?

Das ausgefüllte Dokument zeigt die in jedes Feld geschriebenen Werte. Die Formularstruktur und die Feldinteraktivität sind vollständig intakt: Das PDF kann so gespeichert werden für die Archivierung oder abgeflacht werden, um die Werte für die Verteilung festzuschreiben.
Wie fülle ich Felder in einem bestehenden PDF-Dokument aus?
Viele reale Arbeitsabläufe beinhalten PDF-Formulare, die in Adobe Acrobat, Word oder anderen Tools erstellt wurden. IronPDF kann jedes PDF mit AcroForm-Feldern laden und diese mit denselben FindFormField- und Value-APIs ausfüllen, die auch beim Erstellen von Formularen aus HTML verwendet werden. AcroForm ist das standardisierte interaktive Formularformat, das in der PDF-Spezifikation definiert ist und von allen großen PDF-Readern unterstützt wird.
: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")
// DIESE CODE-AUSZUG IST NICHT VERFÜGBAR!
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")
Das Iterieren von form_document.Form.Fields vor dem Ausfüllen ist nützlich, wenn mit Formularen gearbeitet wird, deren Feldnamen nicht dokumentiert sind. Die Schleife gibt jeden Feldnamen und seinen aktuellen Wert aus und bietet eine vollständige Karte dessen, was das Formular erwartet, bevor Werte geschrieben werden.
Wie arbeite ich mit Kontrollkästchenen und anderen Feldtypen?
Textfelder sind das häufigste Formularelement, aber reale Formulare enthalten Kontrollkästchenen, Radiobuttons und Kombinationsfeld-Dropdowns. IronPDF stellt all dies über dieselbe Form.Fields-Sammlung bereit. Die Eigenschaft Value akzeptiert für jeden Typ die entsprechende Zeichenfolge.
Die folgende Tabelle zeigt die akzeptierten Werte für die drei häufigsten nicht textlichen Feldtypen:
| Feldtyp | HTML-Eingabetyp | Zu setzender Wert | Anmerkungen |
|---|---|---|---|
| Kontrollkästchen | | "true" oder "false" | Groß-/Kleinschreibung nicht empfindlich; Verwenden Sie String, nicht Boolean |
| Radiobutton | | Das value-Attribut der Option, die ausgewählt werden soll | Gleicher Name, unterschiedliche Werte pro Option |
| Dropdown (Kombinationsfeld) | | Der Anzeigetext der gewünschten Option | Muss genau mit einer bestehenden Option übereinstimmen |
: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")
// DIESE CODE-AUSZUG IST NICHT VERFÜGBAR!
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")
Bei der Iteration von form_document.Form.Fields stellt jedes FormField-Objekt eine Name-Eigenschaft und eine Value-Eigenschaft bereit. Bei Radio-Gruppen und Dropdown-Menüs zeigt das PRINTen des vorhandenen Value vor dem Schreiben die aktuelle Auswahl an und bestätigt das erwartete Format für dieses Feld.
FindFormField den Wert None zurückgibt, existiert der Feldname im Dokument nicht. PRINTen Sie alle Namen über form_document.Form.Fields aus, um die Schreibweise zu überprüfen und sicherzustellen, dass das Feld vorhanden ist. Feldnamen sind groß-/kleinschreibungsempfindlich.Wie fülle ich Formulare in großen Mengen aus einer Datenquelle aus?
Das Generieren eines ausgefüllten PDFs pro Datensatz aus einer Tabelle oder einer Datenbankabfrage ist einer der häufigsten Gründe, warum Teams auf programmatisches Formularausfüllen zurückgreifen. IronPDF behandelt dies, indem jede Ausfülloperation als zustandslos betrachtet wird: Vorlage laden, Felder füllen, unter einem eindeutigen Namen speichern und wiederholen.
: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}")
// DIESE CODE-AUSZUG IST NICHT VERFÜGBAR!
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}")
Das Laden der Vorlage innerhalb der Schleife, anstatt einmal davor, verhindert, dass sich Feldwerte über Iterationen hinweg ansammeln. Jeder Aufruf von PdfDocument.FromFile erzeugt eine neue Kopie der Vorlage, sodass das Ausfüllen eines Datensatzes keinen Einfluss auf den nächsten haben kann.
PdfDocument.FromFile zu laden und einen Kopiermechanismus zu verwenden, sofern die API dies unterstützt. Vergleichen Sie beide Ansätze mit Ihren Volumenanforderungen, bevor Sie implementieren.IronPDF setzt kein künstliches Limit, wie viele Dokumente ein Skript in einem einzigen Lauf erzeugen kann. Der Durchsatz wird durch den verfügbaren Speicher und die E/A-Geschwindigkeit des Ausgabemediums bestimmt. Für sehr große Mengen ist das Schreiben auf eine lokale SSD und der anschließende Transfer auf Netzwerkspeicher schneller als das direkte Schreiben auf ein Netzlaufwerk.
Wie flache ich ein ausgefülltes PDF-Formular ab?
Das Abflachen wandelt interaktive Formularfelder in statische Seiteninhalte um und fixiert die aktuellen Werte. Ein abgeflachtes PDF ist die richtige Wahl für die Archivierung, das Drucken oder das Versenden an Empfänger, die keine Feldwerte ändern sollen.
IronPDF bietet eine Methode zum Abflachen von Formularfeldern, die auf jedem geladenen PdfDocument funktioniert. Rufen Sie sie nach dem Ausfüllen der Felder auf und speichern Sie dann das Ergebnis.
: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")
// DIESE CODE-AUSZUG IST NICHT VERFÜGBAR!
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")
Nach Flatten() enthält das Dokument keine interaktiven Feldobjekte mehr. Nachfolgende Systeme, die die Datei erhalten, sehen gewöhnliche Textinhalte anstelle von Formular-Widgets. Dies ist wichtig für die PDF/A-Archivierungsanforderungen und um unbeabsichtigte Bearbeitungen in mehrstufigen Überprüfungspipelines zu verhindern.
Wie installiere ich IronPDF in Python?
IronPDF ist über PyPI erhältlich. Installieren Sie es mit pip:
pip install ironpdf
Importieren Sie die Bibliothek nach der Installation am Anfang jedes Skripts mit from ironpdf import *. Eine kostenlose Testlizenz steht zur Evaluierung bereit. Für Produktionsbereitstellungen ist ein kommerzieller Lizenzschlüssel erforderlich, der über die Eigenschaft License.LicenseKey festgelegt werden muss, bevor PDF-Operationen ausgeführt werden können.
Was sind die nächsten Schritte für die PDF-Formularautomatisierung in Python?
Dieser Leitfaden behandelte das Erstellen von PDF-Formularen aus HTML, das Ausfüllen von Feldern in bestehenden Dokumenten, das Arbeiten mit Kontrollkästchenen und Dropdown-Feldern, das Generieren von Chargen ausgefüllter Formulare aus Datensätzen und das Abflachen ausgefüllter PDFs zur Archivierung. Jede Technik verwendet dieselbe Kern-API: FindFormField zum Auffinden eines Feldes anhand seines Namens, Value zum Zuweisen von Daten und SaveAs zum Schreiben des Ergebnisses.
Um verwandte Fähigkeiten in IronPDF for Python zu erkunden:
- Erstellen von PDF-Formularen aus HTML-Vorlagen: Erstellen Sie vollständige Formularlayouts mit HTML und CSS
- Bearbeiten und Ausfüllen bestehender PDF-Formulare: Verwenden von AcroForm-Feldern in Dokumenten, die außerhalb von IronPDF erstellt wurden
- Abflachen von PDF-Formularfeldern: Feldwerte zum Archivieren oder für den druckbereiten Versand festschreiben
- Extrahieren von Text und Bildern aus PDFs: Daten aus ausgefüllten Dokumenten zurücklesen
- HTML-zu-PDF-Konvertierungsanleitung: eingehende Abdeckung der Rendering-Pipeline, die IronPDF verwendet
- Erkundigen Sie die IronPDF-Python-Quellbeispiele auf GitHub: ausführbarer Code für alle in diesem Leitfaden behandelten Szenarien
Starten Sie eine kostenlose Testversion, um das Ausfüllen von Formularen in Ihrem eigenen Python-Projekt zu testen. Wenn Sie bereit sind, einzusetzen, sehen Sie sich Lizenzierungsoptionen für Einzehlentwickler- und Unternehmenspakete an.
Häufig gestellte Fragen
Was sind die grundlegenden Schritte, um ein PDF-Formular programmgesteuert in Python auszufüllen?
Installieren Sie IronPDF mit ‹code›pip install ironpdf‹/code›, laden Sie Ihr PDF mit ‹code›PdfDocument.FromFile()‹/code›, finden Sie das Zielfeld mit ‹code›form_document.Form.FindFormField()‹/code›, weisen Sie einen Wert zu ‹code›field.Value‹/code› zu, dann speichern Sie mit ‹code›SaveAs()‹/code›.
Wie kann ich auf bestimmte Formularfelder in einem PDF-Dokument zugreifen und sie ändern?
Verwenden Sie die ‹code›FindFormField‹/code›-Methode auf dem ‹code›Form‹/code›-Attribut eines geladenen ‹code›PdfDocument‹/code›, indem Sie den Feldnamen als String übergeben. Die Methode gibt ein ‹code›FormField‹/code›-Objekt zurück, dessen ‹code›Value‹/code›-Eigenschaft Sie lesen oder setzen können.
Wie fülle ich Kontrollkästchen und Dropdown-Felder mit IronPDF?
Für Kontrollkästchen setzen Sie ‹code›Value‹/code› auf den String ‹code›"true"‹/code› oder ‹code›"false"‹/code›. Für Optionsfelder setzen Sie ‹code›Value‹/code› auf das Wertattribut der gewünschten Option. Für Dropdowns setzen Sie ‹code›Value‹/code› auf den genauen Anzeigetext der Option, die Sie ausgewählt haben möchten.
Kann ich das massenhafte Ausfüllen von PDF-Formularen für mehrere Dokumente automatisieren?
Ja. Laden Sie die Vorlage in einer Schleife mit ‹code›PdfDocument.FromFile()‹/code› bei jeder Iteration, um eine frische Kopie zu erhalten, füllen Sie die Felder aus Ihrer Datenquelle, und speichern Sie jedes Ergebnis mit einem eindeutigen Dateinamen mit ‹code›SaveAs()‹/code›.
Was ist Form Flachen und wann sollte ich es verwenden?
Glätten konvertiert interaktive Formularfelder in statischen Seiteninhalt und sperrt Werte an Ort und Stelle. Rufen Sie ‹code›form_document.Form.Flatten()‹/code› vor dem Speichern auf, wenn das Dokument zur Archivierung, zum Drucken oder zur Verteilung an Empfänger bestimmt ist, die keine Feldwerte bearbeiten sollen.
Was passiert, wenn FindFormField ein Feld nicht finden kann?
Wenn kein Feld mit dem angegebenen Namen existiert, gibt ‹code›FindFormField‹/code› ‹code›None‹/code› zurück. Durchlaufen Sie ‹code›form_document.Form.Fields‹/code›, um alle verfügbaren Feldnamen auszudrucken und die korrekte Schreibweise zu bestätigen. Feldnamen sind groß-/kleinschreibungssensitiv.
Welche Arten von PDF-Formularen unterstützt IronPDF?
IronPDF unterstützt AcroForm-Felder, das Standardformat für interaktive Formulare, das von Adobe Acrobat und den meisten PDF-Autorentools verwendet wird. Gescannte PDFs und rein bildbasierte Dokumente enthalten keine AcroForm-Felder und erfordern eine OCR-Verarbeitung, bevor eine Textextraktion möglich ist.

