PDF-Formulare skriptgesteuert ausfüllen


An einem konkreten Beispiel soll gezeigt werden, wie man mit Hilfe von XFDF-Dateien, dem Kommandozeilenwerkzeug pdftk sowie Bash-/Python-Skripten PDF-Formulare automatisiert ausfüllen kann. Die Skripte und sonstigen Dateien sind unter SKRIPTE zu finden.

Ein möglicher, aber weniger empfehlenswerter Ansatz besteht in der Nutzung von Text-Annotationen, z.B. mit

  convert -annotate ...

Siehe annotate.sh für das Formular formular.pdf.

Die wesentlichen Nachteile gegenüber der empfohlenen XFDF-Variante sind in den Kommentaren des Skripts genannt.

FDF (Forms Data Format) und XFDF (XML Forms Data Format) ermöglichen die textuelle Repräsentation von Formulardaten durch Angabe der Feldnamen und ihrer Werte. Mit Adobe Professional kann man Formulardaten in FDF/XFDF-Dateien exportieren und diese auch wieder in ein PDF importieren. pdftk gestattet den FDF-Export sowie den Import von FDF und XFDF, wobei XFDF für eine Behandlung durch Skripte komfortabler erscheint, weswegen nachfolgend nur darauf genauer eingegangen wird. Durch den (X)FDF-Import kann man pdftk sehr gut zum skriptgesteuerten Ausfüllen von PDF-Formularen nutzen.

Hier einige Links mit genaueren Informationen zu den Formaten FDF/XFDF:

Wikipedia nennt einige weitere Werkzeuge, die mit (X)FDF umgehen können.

Adobe bietet umfangreiche offizielle Spezifikationen zum Thema an, von denen man für unsere Praxisbeispiele maximal kleinere Auszüge aus der XFDF-Spezifikation benötigt:

Konkret mit der für die Experimente verwendeten deutschen Version 9 von Adobe Professional gestaltete sich der (X)FDF-Export wie folgt:

Hinweis: Über den Menüpunkt "Felder hinzufügen oder bearbeiten..." kann man die Formular-Struktur bearbeiten. Dort sieht man auch die internen Feldnamen, die dann wiederum im (X)FDF auftauchen und für das maschinelle Ausfüllen von Formularen relevant sind.

Bevor wir zum praktischen Ablauf des Ausfüllens von Formularen kommen, hier noch einige Anmerkungen zu (X)FDF-Dateien und pdftk, die bei den Experimenten gewonnen wurden:

Nachfolgend soll an einem konkreten Beispiel ein möglicher Ablauf beim automatisierten Ausfüllen von PDF-Formularen unter Nutzung der Dateien aus dem Ordner SKRIPTE gezeigt werden:

Abschließende Anmerkung: Das Skript get_fdf.sh zeigt die Nutzung von pdftk für den FDF-Export sowie zur Ausgabe von für den Menschen leicht lesbaren Text-Informationen über die Formularfelder. Mit purge kann man die von ausfuellen.sh generierten Dateien wieder beseitigen.


Holger Trapp

letzte Modifikation: 24.9.2013