PowerShell - Felder in PDF auslesen und Dateiname damit erzeugen

Mitglied: Pat.bat

Pat.bat (Level 1) - Jetzt verbinden

14.02.2020 um 12:01 Uhr, 1246 Aufrufe, 10 Kommentare, 2 Danke

Hallo zusammen,

ich stehe gerade vor folgender Herausforderung:

wir haben PDF Dateien, wo Felder befüllt werden bzw. wurden. Ich möchte nun ein Skript bauen, wo man die PDF auf das Skript ziehen kann, dieses dann 4 Daten/Felder aus der PDF ausliest und damit einen neuen Dateinamen für diese PDF erstellt und die Datei umbenennt.

Anbei ein Auszug aus der PDF:
pdf_daten - Klicke auf das Bild, um es zu vergrößern


Meine Frage ist nun, kann man direkt auf solche Felder einer PDF zugreifen, oder wie bekommen ich den Inhalt dieser 4 Felder am besten ausgelesen?


Ich bedanke mich Voraus.


MfG

Patrick
Mitglied: 142970
142970 (Level 1)
14.02.2020, aktualisiert um 15:24 Uhr
Bitte warten ..
Mitglied: colinardo
14.02.2020, aktualisiert 16.02.2020
Servus Patrick,
wie @soccer oben schon im ersten Link verlinkt hat, ein damit leicht abgewandeltes Skript für die Verwendung mit Formularfeldern.

Anzupassen sind in den Variablen im Header der Pfad in dem die PDFs liegen, und die korrekten Feldnamen der Formularfelder in der Hashtable $fieldnames. Die Feldnamen der Formularfelder finden sich in den Eigenschaften der Felder (Kontextmenü).
Das Muster nachdem umbenannte wird lässt sich in Zeile 76 nach Gusto anpassen.
Die benötigte DLL zum Auslesen der PDFs wird bei nicht Vorhandensein in das Skriptverzeichnis nachgeladen, Schreibrechte sind dort also erforderlich sofern die DLL dort noch nicht hinterlegt ist.

Download des Skripts inkl. Demo-PDF und Kommentaren zu jeder Codezeile hier

pdf_rename_with_form_fields_547272.zip


Grüße Uwe
Bitte warten ..
Mitglied: LeeX01
15.02.2020 um 13:46 Uhr
Hallo Uwe,


ich habe gerade versucht das auszuprobieren, bekomme aber die Feldnamen nicht aus einem PDF (Kontextmenü funktioniert nicht). Soweit ich das erkennen kann scheint das Problem zu sein das das PDF nicht mit Acrobat sondern Lifecycle erstellt worden ist. Hab da auf dei schnelle nichts brauchbares im Web gefunden. Hast du evtl. auch ein kleines Script um alle enthaltenen Felder aus einem PDF auszulesen oder kennst du noch eine andere Möglichkeit?

Beste Grüße
Bitte warten ..
Mitglied: colinardo
15.02.2020, aktualisiert um 14:23 Uhr
Servus,
also damit du die Feldnamen angezeigt bekommst musst du z.B. in Acrobat das spezielle Object Select Tool nutzen, womit du Formularfelder selektieren und bearbeiten kannst, oder du bearbeitest das PDF als Formular in Acrobat dann siehst du die Namen ebenfalls, oder du lässt dir den Object-Tree des PDFs einblenden, oder du lässt dir im Skript in der Schleife nach Zeile 65 mit
die verfügbaren Felder des PDFs auf der Konsole ausgeben.
In Lifecycle kannst du die Objekt-Namen im Normalfall ja auch direkt übernehmen.

Gibt also genug Möglichkeiten 😉.

Grüße Uwe
Bitte warten ..
Mitglied: LeeX01
15.02.2020 um 14:29 Uhr
Servus Uwe,

danke für den Tipp. Ich selbst habe leider kein Lifecycle, wenn ich das PDF mit Acroat bearbeiten will kommt die Meldung "Dieses Formular kann in Acrobat nicht bearbeitet werden, verwenden Sie Lifecycle". Das Object Select Tool steht leider auch nicht zur Verfügung.

https://answers.acrobatusers.com/How-activate-Select-Object-tool-Acrobat ...

Ich geh mal was Essen, dann versuch ich das Script so anzupassen wie du sagst.

Beste Grüße
Bitte warten ..
Mitglied: colinardo
15.02.2020, aktualisiert um 15:08 Uhr
Das Object Select Tool steht leider auch nicht zur Verfügung.
Wenn du Acrobat Pro hast steht das Tool immer zur Verfügung, ist nur meist nicht direkt in der Symbolleiste verlinkt. Genauso wie der Object-Tree den man sich links in der Baumansicht anzeigen lassen kann, wo die Namen ebenfalls stehen.
Das geht hier auch testweise mit einem vom Lifecycle Designer erstellten PDF einwandfrei.
Bitte warten ..
Mitglied: LeeX01
15.02.2020 um 16:37 Uhr
Ich habe jetzt recht lange gesucht und dann im Netz gefunden das das "Object Select Tool" wohl im deutschen in der Gruppe Druckproduktion unter (Werkzeug "Objekt bearbeiten") zu finden ist. Mit dem Tool kann ich aber trotzdem im Acrobat nichts machen. Bin ich richtig?
Bitte warten ..
Mitglied: colinardo
16.02.2020, aktualisiert um 11:20 Uhr
Dann muss ich wohl mal wieder den Stift rausholen und das aufmalen :-) face-smile

screenshot - Klicke auf das Bild, um es zu vergrößern

Edit: Beachte aber das bei LifeCycle Forms die Daten nicht wie oben im Skript aufgeführt ausgelesen werden da die Daten in LifeCycle Forms in XML (xfa Format) abgelegt werden.

Solche Felder müssen je evt. mit
abgefragt werden.
Bitte warten ..
Mitglied: LeeX01
16.02.2020 um 11:08 Uhr
Danke dir das hat wirklich geholfen, hab die Felder auslesen können und das Script ist ohne Probleme durchgelaufen.

Hab mir derweilen mal angeschaut was es mit den Lifecycledokumenten auf sich hat. Lifecycle erstellt wohl dynamische PDF Formulare mit einem XFA header im Gegensatz zu Acrobat was statische PDFs erstellt.

Vielleicht auch für jemanden interessant.

Mit PDFTK kann man die XFA Informationen entfernen und dann lässt sich das PDF auch mit Acrobat bearbeiten. Hat problemlos funktioniert ohne das Formate, Felder oder Sonstiges beschädigt worden wären.

https://de.switch-case.com/70877443
Bitte warten ..
Mitglied: LeeX01
16.02.2020 um 11:12 Uhr
Solche Felder müssen mit
abgefragt werden.

Habe das Skript oben dafür noch angepasst.

OK danke, warum auch immer, hat auch mit dem ursprünglichen Script funktioniert...
Bitte warten ..
Heiß diskutierte Inhalte
Wünsch Dir was
Das ist ja nicht auszuhalten, dass ich für jeden googlen soll
NordicMikeVor 1 TagAllgemeinWünsch Dir was24 Kommentare

Ich beantrage, dass bei jeder Beitragserstellung eine Checkbox angeklickt werden muss, mit dem Text: Ja, ich habe bereits danach gegoogelt. Ansonsten soll der "Senden" ...

Festplatten, SSD, Raid
SATA Treiber für HP
gelöst ben1300Vor 1 TagFrageFestplatten, SSD, Raid21 Kommentare

Hallo zusammen, ich habe einen PC von HP (Seriennummer: CZC3475D5D) Wollte hier Windows 7 Prof. installieren - es fehlt der SATA Treiber Leider kann ...

Hardware
Homelab - Gebrauchte Server Hardware?
gelöst kernl33Vor 1 TagFrageHardware16 Kommentare

Hallo zusammen, ich plane mir für mein Homelab einen 19 Zoll Server (2-4HE) anzulegen, es soll ein Hypervisor mit diversen VMs laufen. Hier zu ...

Cloud-Dienste
Server über zwei WAN Leitungen mit Load Balancing verfügbar machen
tobitobsnVor 1 TagFrageCloud-Dienste14 Kommentare

Moin zusammen, ich plane, einen Server im WAN über zwei Leitungen (Kabel und DSL) zwecks Ausfallsicherheit und Load Balancing verfügbar zu machen. Es sind ...

Sicherheitsgrundlagen
TI am Ende - Aus für Konnektor und elektronische Gesundheitskarte: Gematik stellt TI 2.0 vor
StefanKittelVor 1 TagInformationSicherheitsgrundlagen5 Kommentare

Hallo, nach der Großstörung in 2020 und allgemeinen Vorwürfen bezüglich der zweifelhaften Konnetktoren scheint die TI nun den Stecker ziehen zu wollen. Nachdem nun ...

Windows Systemdateien
Sql Server 2014 mit extrem vielen DBs auf neuen Server migrieren
gelöst itnirvanaVor 1 TagFrageWindows Systemdateien6 Kommentare

SQL DB Migration auf anderen Server eigentlich ok. Management Studio export . Anderer Server Imporr. Berevhtigung neu setzen SQL User ersteölen etc Jetzt habe ...

Outlook & Mail
Gibt es ein allgemeines Outlook senden Problem zur Zeit?
StefanKittelVor 1 TagFrageOutlook & Mail3 Kommentare

Hallo, habe gerade kurz hinterander 2 völlig getrennte Kunden mit dem gleichen Wirren Problem in Outlook. A) Outlook 2019, Exchange bei Busymouse24 (Hoster), Mit ...

Netzwerkgrundlagen
Cisco IOS: shut?
gelöst ral9004Vor 1 TagFrageNetzwerkgrundlagen15 Kommentare

Hallo Auf dem Cisco Switch läuft IOS XE Gibraltar (16.12) Die Dokumentation des Config Scripts enthält diese Anweisung "shut" wird die Abkürzung für "shutdown" ...