PDF Formulare mit einem Hilfsmittel ausfüllen

~ 0 min
07.05.2019 09:05

Zweck:

PDF Formulare müssen unter Umständen ausgefüllt und gedruckt werden.
Das automatische Ausfüllen von PDF Formularen ist mit der Hilfe von FDF-Dateien und dem Adobe Reader direkt möglich.
Die PDF Datei selbst wird dabei jedoch nicht verändert.

Beschreibung:

Im vorgegebenen Beispiel werden Felder eines vorgegebenen PDF Formulards mit Daten aus AG-VIP SQL gefüllt.
Dabei wird eine FDF Datei mit den Feldinhalten gefüllt und die dazugehörige PDF Datem mit dem Adbobe Reader geöffnet. 
Welche Felder aus AG-VIP SQL welchem Feld in der PDF Datei zugeordnet werden soll wird, über zwei einfache Arrays im Hilfsmittel gesteuert. Die Beschreibung findet sich im Beispiel Makro.

Array 1: aTextValues 

Im Array aTextValues können Texte und Felder aus der AG-VIP SQL Datenbank übergeben werden. Die Feldnamen aus AG-VIP SQL müssen dazu in Prozentzeichen eigeschlossen werden. Es ist möglich, einem PDF Feld mehrere AG-VIP Felder zuzuordnen.
Es ist auch möglich, über ein vorangestelltes @ Zeichen komplette Kennzeichenbeschreibungen zu übernehmen.
Auch reservierte Namen wie ActiveUser.Name werden berücksichtigt.
Der Algorithmus ist identisch mit dem aktuellen Ersetzungsmechanismus aus den Email-Hilfmitteln.

' Der Erste Array ist eine Zuodrnung von Feldnamen und Texten. Die Texte die eingefügt werden, 
' dürfen Platzhalter enthalten wie das auch bei Email-Vorlagen möglich ist. Feldnamen
' werden in % eigeschlodsen. Reservierte Namen und @ Zeichen für Kennzeichentexte sind möglich.
' Ein Array Paar besteht immer aus dem Namen des PDF Feldes und dem zuzuordnenden Inhalt.
Dim aTextValues
aTextValues = Array( _
Array("Name","%NameFirst% %NameLast%"), _
Array("Employer","%Name1%"), _
Array("Address","%Street%, %ZipCode% %City%"), _
Array("Phone","%CommPhoneOffice%") _
)

Array 1: aPlainTextValues 

Über einen zweiten Array können statische Werte übergeben werden. D.h. hier findet keine Substitution statt.

' Der zweite Array ordnet direkt feste Text einem Feld zu. Das dient insbesondere festen Werten
' oder auch errechneten Werten.
' Ein Array Paar besteht immer aus dem Namen des PDF Feldes und dem zuzuordnenden Inhalt.
' Das können natürlich auch wieder Feldinhalte aus der Datenbank sein.
Dim aPlainTextValues
aPlainTextValues = Array( _
Array("Sex","M"), _
Array("Sports","Yes"), _
Array("Arts","No"), _
Array("Reading","Yes"), _
Array("Travel","No") _
)

Weiter Hinweise:

Um PDF Formulare ausfüllen zu können, ist es unbedingt notwendig, die Namen der Felder im PDF Formular zu kennen.
Um die Feldnamen zu ermitteln, empfehle ich die kostenlose Version des Tools PDFTK zu nutzen.

Um die Felder eines PDFs anzuzeigen, ist auf der Befehleszeile der folgende Befehl anzugeben:

C:\Program Files (x86)\pdftk\bin\pdftk.exe" Forumular.pdf dump_data_fields

Die Ausgabe zeigt dann alle Felder und deren Datentypen an mit eventuell vorhandenen Beschränkungen. 

Änderungen:
2019-05-07 MRi: Leere Datumsfelder korrekt behandeln. Dynamische Zieldateinamen erlauben.

Angehängte Dateien:

Durchschnittliche Bewertung 0 (0 Abstimmungen)

Kommentieren nicht möglich