PDF-Formulare automatisch aus einer Tabelle befüllen
So befüllen Sie PDF-Formulare automatisch aus Excel oder Google Sheets: Formularfelder prüfen, Umlaute, Checkboxen, Formate und ein kleines Python-Beispiel.
- Veröffentlicht
- Autor
- Mario Gvozden
- Lesezeit
- 7 Minuten
- Leistung
- Dokumente & Daten
Teilnahmebescheinigungen, Lieferantenformulare, Anträge, Prüfprotokolle, Mitarbeiterbögen: Viele Unternehmen füllen regelmäßig dasselbe PDF-Formular aus, jedes Mal mit anderen Daten. Die Daten selbst liegen meist schon in einer Tabelle. Trotzdem werden sie Feld für Feld von Hand in das PDF übertragen.
Das lässt sich gut automatisieren: Eine Zeile der Tabelle ergibt ein fertig befülltes PDF. Ob das in zehn Minuten eingerichtet ist oder zur Geduldsprobe wird, hängt vor allem davon ab, wie das Formular gebaut ist.
Schritt 1: Herausfinden, was für ein PDF Sie haben
PDF ist nicht gleich PDF. Für die Automatisierung gibt es drei Fälle.
Formular mit echten Feldern (AcroForm)
Wenn Sie das PDF im Reader öffnen und in Felder klicken und tippen können, hat es echte Formularfelder. Jedes Feld hat einen internen Namen, über den es sich gezielt befüllen lässt. Das ist der Idealfall.
„Flaches“ PDF ohne Felder
Manche Formulare sehen aus wie Formulare, sind aber nur gedruckte Linien und Kästchen. Man kann nicht hineinklicken. Hier gibt es zwei Wege: Entweder legt man einmalig Formularfelder an, etwa mit einem PDF-Editor, und befüllt sie danach automatisch. Oder man schreibt den Text an festen Koordinaten auf die Seite. Der erste Weg ist robuster und lässt sich später leichter anpassen.
XFA-Formulare
Ältere Formulare, die mit Adobe LiveCycle erstellt wurden, nutzen ein Format namens XFA. Man erkennt sie oft an der Meldung, dass das Dokument nur in Adobe Reader richtig angezeigt wird. Viele Werkzeuge können XFA nicht befüllen, und das Format gilt als veraltet. Wenn ein solches Formular von einer Behörde oder einem Verband stammt, lohnt die Nachfrage, ob es eine neuere Fassung gibt. Andernfalls muss das Formular gegebenenfalls nachgebaut werden.
Schritt 2: Die Feldnamen auslesen
Die internen Feldnamen sind oft nicht die Beschriftungen, die Sie sehen. Hinter „Name des Antragstellers“ kann ein Feld namens Textfeld17 oder form1[0].page1[0].name[0] stecken. Bevor Sie eine Zuordnung bauen, brauchen Sie die vollständige Liste.
Mit Python geht das in wenigen Zeilen:
from pypdf import PdfReader
reader = PdfReader("vorlage.pdf")
for name, feld in reader.get_fields().items():
print(name, feld.get("/FT"), feld.get("/_States_", ""))
Die Ausgabe zeigt jeden Feldnamen, den Feldtyp (/Tx für Text, /Btn für Checkboxen und Optionsfelder, /Ch für Auswahllisten) und bei Checkboxen die erlaubten Werte.
Schritt 3: Die Zuordnung festhalten
Erstellen Sie eine kleine Zuordnungstabelle, welche Spalte in welches Feld gehört. Sie ist zugleich Dokumentation für später.
| Spalte in der Tabelle | Feld im PDF | Hinweis |
|---|---|---|
| Firma | Textfeld1 |
|
| Ansprechpartner | Textfeld2 |
|
| Datum | Datum_Unterschrift |
Format TT.MM.JJJJ |
| Betrag | Summe |
mit Komma, zwei Nachkommastellen |
| Bio-zertifiziert (ja/nein) | Kontrollkästchen3 |
Ein-Wert lautet /Ja |
Gerade die letzte Zeile ist wichtig. Checkboxen haben einen festgelegten Wert für „angehakt“, der nicht immer Yes oder On heißt. Wird ein falscher Wert gesetzt, bleibt das Kästchen leer, ohne dass ein Fehler erscheint.
Schritt 4: Befüllen
Ein schlankes Skript liest die Tabelle, befüllt die Vorlage für jede Zeile und speichert das Ergebnis unter einem sprechenden Namen:
import pandas as pd
from pypdf import PdfWriter
daten = pd.read_excel("daten.xlsx", dtype=str).fillna("")
for _, zeile in daten.iterrows():
werte = {
"Textfeld1": zeile["Firma"],
"Textfeld2": zeile["Ansprechpartner"],
"Datum_Unterschrift": zeile["Datum"],
}
writer = PdfWriter(clone_from="vorlage.pdf")
for seite in writer.pages:
writer.update_page_form_field_values(seite, werte, auto_regenerate=False)
writer.set_need_appearances_writer(True)
dateiname = f"{zeile['Kundennummer']}_{zeile['Firma']}.pdf".replace(" ", "-")
writer.write(f"ergebnis/{dateiname}")
dtype=str sorgt dafür, dass Excel aus Postleitzahlen keine Zahlen macht und führende Nullen verschwinden. Wer lieber ohne Code arbeitet, kann dieselbe Logik mit einem Workflow-Werkzeug oder einem PDF-Dienst umsetzen. Das Prinzip bleibt gleich.
Die typischen Probleme – und wie man sie vermeidet
Umlaute und Sonderzeichen
Das häufigste Ärgernis: „Müller“ wird als „M?ller“ oder gar nicht angezeigt. Die Ursache liegt meist in der Schriftart, die im Formularfeld hinterlegt ist. Enthält sie die Zeichen nicht, oder wurde sie nur teilweise eingebettet, fehlen sie. Abhilfe schafft eine Schriftart mit vollständigem Zeichensatz im Feld oder das Erzeugen der Feldanzeige mit einer passenden Schrift. Testen Sie immer mit Daten, die Umlaute, ß und gegebenenfalls Akzente enthalten, etwa bei Namen aus anderen Ländern.
Zahlen und Datumsangaben
In der Tabelle ist ein Datum ein Datum, im PDF ist es Text. Legen Sie das Format ausdrücklich fest, sonst steht dort plötzlich 2026-12-10 00:00:00. Dasselbe gilt für Beträge: 1234.5 in der Tabelle soll im Formular als 1.234,50 erscheinen.
Zu langer Text
Formularfelder haben eine feste Größe. Ist die Schriftgröße fest eingestellt, wird zu langer Text abgeschnitten. Mit automatischer Schriftgröße wird er kleiner, bis er hineinpasst, im Extremfall unleserlich. Prüfen Sie die längsten Werte Ihrer Tabelle gezielt.
Darstellung in verschiedenen Programmen
Ein PDF, das in Adobe Reader korrekt aussieht, kann in der Vorschau des Browsers oder auf dem Smartphone leere Felder zeigen. Der Grund: Manche Programme erzeugen die Anzeige der Felder selbst, andere verlassen sich darauf, dass sie im Dokument gespeichert ist. Prüfen Sie das Ergebnis deshalb in mindestens zwei Programmen.
Mehrseitige Formulare und wiederholte Felder
Manche Formulare enthalten dasselbe Feld mehrfach, etwa den Namen in der Kopfzeile jeder Seite. Haben diese Felder denselben internen Namen, werden sie gemeinsam befüllt. Haben sie unterschiedliche Namen, muss jedes einzeln in die Zuordnung. Ähnlich bei Tabellen im Formular, etwa zehn Zeilen für Positionen: Hier heißen die Felder oft Pos1_Menge, Pos2_Menge und so weiter, und die Daten müssen aus mehreren Tabellenzeilen auf ein Formular verteilt werden. Klären Sie vorher, was passiert, wenn mehr Positionen vorhanden sind, als das Formular Zeilen hat.
Editierbar lassen oder „flach“ machen?
Nach dem Befüllen können Sie die Felder bearbeitbar lassen oder das PDF „flatten“, also die Werte fest in die Seite einbrennen. Ein flaches PDF sieht überall gleich aus und kann nicht versehentlich geändert werden. Ein editierbares PDF lässt Korrekturen zu. Für Bescheinigungen und Dokumente, die verschickt werden, ist die flache Variante meist sinnvoller. Für Formulare, die der Empfänger noch ergänzen soll, bleiben die Felder offen.
Eine Unterschrift ersetzt die Automatisierung übrigens nicht. Ein eingefügtes Bild einer Unterschrift ist keine qualifizierte elektronische Signatur. Wo eine echte Signatur gefordert ist, muss diese gesondert erfolgen.
Vor dem Start klären
- Hat das PDF echte Formularfelder, oder müssen sie angelegt werden?
- Liegt eine Beispieltabelle mit realistischen, auch schwierigen Werten vor?
- Ist die Zuordnung Spalte zu Feld festgehalten, inklusive Checkbox-Werten?
- Welche Formate gelten für Datum, Beträge und Telefonnummern?
- Wie sollen die Dateien heißen, und wo sollen sie landen?
- Flach oder editierbar?
- Wer startet den Vorgang: auf Knopfdruck, zeitgesteuert oder bei neuer Tabellenzeile?
Wenn die Tabellendaten selbst noch unsauber sind, lohnt sich vorher ein Blick auf den Beitrag Datenqualität vor dem Import.
Häufige Fragen
Wie erkenne ich, ob ein PDF echte Formularfelder hat?
Öffnen Sie das PDF in einem Reader und versuchen Sie, in ein Feld zu klicken und zu tippen. Geht das, hat es echte Formularfelder (AcroForm), die sich über ihren internen Namen gezielt befüllen lassen. Sind es nur gedruckte Linien und Kästchen, müssen die Felder einmalig angelegt oder der Text an festen Koordinaten platziert werden.
Warum werden Umlaute im befüllten PDF falsch angezeigt?
Meist fehlt der Schriftart im Formularfeld der passende Zeichensatz, oder sie ist nur teilweise eingebettet. Abhilfe schafft eine Schriftart mit vollständigem Zeichensatz im Feld oder das Erzeugen der Feldanzeige mit einer passenden Schrift. Testen Sie deshalb immer mit Daten, die Umlaute, ß und Akzente enthalten.
Sollte ich das befüllte PDF flach machen?
Für Bescheinigungen und Dokumente, die verschickt werden, ist das meist sinnvoll: Ein flaches PDF sieht überall gleich aus und kann nicht versehentlich geändert werden. Soll der Empfänger das Formular noch ergänzen, bleiben die Felder offen.
Eine PDF-Vorlage mit bis zu 30 Feldern aus Excel oder Google Sheets zu befüllen, ist eine typische Aufgabe im Prozess-Abo. Sie teilen Vorlage und Beispieltabelle, gern mit den schwierigen Werten, über einen Ordner mit uns und legen die Aufgabe als Karte auf Ihr Board. Die Punkte aus „Vor dem Start klären“ werden zu den Abnahmekriterien. 48 Stunden nach Start (gezählt Mo 8 – Fr 16 Uhr) liegen die fertigen PDFs im Unterordner „Ergebnis“, mit einer kurzen Anleitung zum erneuten Ausführen. Ein Senior-Entwickler hat die Lieferung vorher geprüft und freigegeben. Soll das Befüllen später automatisch bei jeder neuen Tabellenzeile laufen, ist das die nächste Karte. Die erste Aufgabe erledigen wir kostenlos, eine pro Unternehmen. Mehr dazu unter Dokumente & Daten und im Leistungskatalog.
Die erste Aufgabe ist kostenlos – eine pro Unternehmen. Sie legen einen Workspace an, geben Zugang per Einladung und schreiben die Aufgabe auf Ihr Board. Wir liefern sie 48 Stunden nach Start, gezählt Mo 8 bis Fr 16 Uhr: Start am Montag um 10 Uhr – Lieferung am Mittwoch um 10 Uhr. Jede Lieferung prüft und gibt ein Senior-Entwickler frei, bevor sie zu Ihnen geht.
Danach im Prozess-Abo: Sie schreiben Aufgaben aufs Board und bestimmen die Reihenfolge, wir setzen sie um. Prozess-Abo 1: 1.000 € im Monat, 1 Aufgabe gleichzeitig in Arbeit, bis zu 1 Aufgaben pro Monat; Prozess-Abo 2,5: 2.500 € im Monat, 1 Aufgabe gleichzeitig in Arbeit, bis zu 4 Aufgaben pro Monat; Prozess-Abo 5: 5.000 € im Monat, 1 Aufgabe gleichzeitig in Arbeit; Prozess-Abo 10: 10.000 € im Monat, 2 Aufgaben parallel in Arbeit. Gezählt werden die Aufgaben, die wir im Abrechnungsmonat beginnen; eine Nachbesserung zählt nicht neu. Nicht genutzte Aufgaben verfallen am Monatsende. Preise zzgl. MwSt., nur für Unternehmen, monatlich kündbar – das Abo beginnt nur, wenn Sie es bestellen.
Fragen vorab oder mehr Aufgaben parallel? Im kostenlosen Projekt-Check (30 Minuten) klären wir das, auch für ein individuelles Abo.