PDFtk - PDF Formulare automatisch befüllen
Wenn man automatisiert PDF Formulare ausfüllen möchte bietet sich das PDF-Toolkit von Sid Steward an. Es ermöglicht PDF Formulare über fdf Dateien zu befüllen. PDFtk ist erhältlich für Linux und Windows und funktioniert bei beiden Systemen gleich. Zumindest hab ich noch keine Unterschiede festgestellt
Wie geht man nun vor um pdftk in einem automatischen Prozess zu integrieren ?
1.) Download von PDFTk hier https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/ , bei Linux ist PDFTk meist über Repository verfügbar.
Debian
Man kann sich natürlich auch das aktuelle PDFTk downloaden und über die Packetverwaltung installieren.
Debian
Windows >> PDFTK für Windows Download & Installation
2.) um nun alle Felder zu erhalten die ausgefüllt werden können ruft man PDFtk auf mit diesem Kommando auf :
man erhält nun eine Datei mit den Formular Feldern und dem Header & Footer der Datei. Das sieht dann so in der Art aus
3.) Die Werte kann man nun abändern und wieder mit der PDF Datei vereinen. Um das scripting zu vereinfachen habe ich hier die Werte gedreht. /T ist der Feldname /V der Inhalt (Value ?)
In meinem Fall werden die Daten aus einer Oracle Datenbank an ein vbs Skript geschickt was mir die FDF Dateien erzeugt und dann mit der PDF Datei vereint.
Mit diesem Befehl kann man nun die fdf und das PDF Formular zusammenführen und unter neuen Namen abspeichern :
Bekanntes Problem :
Sollte ein Formular eine gewisse Intelligenz aufweisen , z.B. freischalten von Felder nach anklicken , werden diese Werte nicht sichtbar. Das Feld muss erst manuell angeklickt werden um den Eintrag sichbar zu machen.
Leider blockiert dieser Fehler ca. 10% meiner Formulare aber 90% konnte ich damit automatisch aus der Datenbank befüllen, und die Schreibfehler sind auf null gesunken
Quelle :
PDFTk download
Wie geht man nun vor um pdftk in einem automatischen Prozess zu integrieren ?
1.) Download von PDFTk hier https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/ , bei Linux ist PDFTk meist über Repository verfügbar.
Debian
apt-get install pdftkOpenSuse
zypper install pdftk
Man kann sich natürlich auch das aktuelle PDFTk downloaden und über die Packetverwaltung installieren.
Debian
dpkg -i /download/pdftk-XXXXX.debOpenSuse
rpm -i /download/pdftk-XXXXX.rpm
Windows >> PDFTK für Windows Download & Installation
2.) um nun alle Felder zu erhalten die ausgefüllt werden können ruft man PDFtk auf mit diesem Kommando auf :
pdftk FORMULAR.pdf generate_fdf output FORMULAR.fdf
man erhält nun eine Datei mit den Formular Feldern und dem Header & Footer der Datei. Das sieht dann so in der Art aus
%FDF-1.2 %âãÏÓ 1 0 obj << /FDF << /Fields [ << /V () /T (TEST_NAME) >> << /V () /T (TEST_ADRESSE) >> ] >> >> endobj trailer << /Root 1 0 R >> %%EOF
3.) Die Werte kann man nun abändern und wieder mit der PDF Datei vereinen. Um das scripting zu vereinfachen habe ich hier die Werte gedreht. /T ist der Feldname /V der Inhalt (Value ?)
In meinem Fall werden die Daten aus einer Oracle Datenbank an ein vbs Skript geschickt was mir die FDF Dateien erzeugt und dann mit der PDF Datei vereint.
%FDF-1.2 %âãÏÓ 1 0 obj << /FDF << /Fields [ << /T (TEST_NAME) /V (Ich bin ein Name im Formular)>> << /T (TEST_ADRESSE) /V (Muuuusterway 12,0012412 Irgendwo)>> ] >> >> endobj trailer << /Root 1 0 R >> %%EOF
Mit diesem Befehl kann man nun die fdf und das PDF Formular zusammenführen und unter neuen Namen abspeichern :
pdftk FORMULAR.pdf fill_form FORMULAR.fdf output FORMULAR_FERTIG.pdf
Bekanntes Problem :
Sollte ein Formular eine gewisse Intelligenz aufweisen , z.B. freischalten von Felder nach anklicken , werden diese Werte nicht sichtbar. Das Feld muss erst manuell angeklickt werden um den Eintrag sichbar zu machen.
Leider blockiert dieser Fehler ca. 10% meiner Formulare aber 90% konnte ich damit automatisch aus der Datenbank befüllen, und die Schreibfehler sind auf null gesunken
Quelle :
PDFTk download