alexmies
Goto Top

PDF Formulardaten in anderes Formular übertragen

Hallo zusammen,

ich habe ein PDF Formular in das Daten eingetragen werden. Dieses Formular enthält einen Button der bei Klick ein neues anderes Formular öffnet. So weit so gut. Ist es nun möglich, dass dieses neue Formular automatisch für bestimmte Felder die Werte aus dem vorherigen Formular übernimmt, also aus dem womit man das neue Formular geöffnet hat?

Vielen Dank face-smile

Content-Key: 266933

Url: https://administrator.de/contentid/266933

Printed on: April 25, 2024 at 02:04 o'clock

Mitglied: 114757
114757 Mar 20, 2015 at 07:21:14 (UTC)
Goto Top
Moin,
ja, wenn du mit Acrobat JavaScript arbeitest dann lässt sich das machen...

Gruß jodel32
Member: AlexMies
AlexMies Mar 20, 2015 at 07:48:38 (UTC)
Goto Top
Ich kenne mich mit JavaScript leider gar nicht aus.
Gibt es irgendwo einen Link oder hast du vielleicht zufällig sogar einen Beispiel Code, den ich mir anschauen könnte?
Member: colinardo
colinardo Mar 20, 2015 updated at 08:52:10 (UTC)
Goto Top
Hallo AlexMies, Willkommen auf Administrator.de!
Zitat von @AlexMies:
Ich kenne mich mit JavaScript leider gar nicht aus.
Schlecht...Dann können wir das hier nur an einem Beispiel fest machen. Ich hoffe du kommst da mit ...
Gibt es irgendwo einen Link oder hast du vielleicht zufällig sogar einen Beispiel Code, den ich mir anschauen könnte?

Ich habe dir mal ein ZIP-File mit zwei PDF-Dateien zusammen gestellt.

pdf_transfer_fields_266933.zip

Du öffnest dok1.pdf trägst in die zwei Felder Daten ein und klickst dann den Button, dann wird das zweite PDF geöffnet (dok2.pdf) und in die dortigen zwei Felder die Werte aus dem Quell-PDF übertragen.

Der Code zum Öffnen und Übertragen der Daten befindet sich als JavaScript-Aktion hinter dem Button.
var newdoc = app.openDoc("dok2.pdf",this);  
newdoc.getField("txtVorname").value = this.getField("txtVorname").value;  
newdoc.getField("txtNachname").value = this.getField("txtNachname").value;  
newdoc.setFocus();
Jetzt kommt aber eine wichtige Besonderheit ins Spiel: Damit Acrobat das neu geöffnete Dokument via JavaScript ansprechen kann muss eine Javascript-Eigenschaft beider Dokumente auf true gesetzt werden, und zwar ist das die Eigenschaft disclosed. Diese muss auf Dokumentebene in die PDF-Dokumente gesetzt werden. So dass sie beim Öffnen dieser Dokumente bereits gesetzt ist.
Wird dies nicht gemacht, kann Acrobat aus Sicherheitsgründen nicht via Javascript mit dem anderen Dokument arbeiten.
Die Anweisung sieht so aus:
this.disclosed = true;
Und muss hier eingefügt werden: Werkzeuge > Javascript > Alle Javascriptanweisungen bearbeiten

bee562fcea1786074fd58a946b26c9a5

WICHTIG: Das muss sowohl für das Quell- als auch für das Zieldokument gemacht werden ansonsten wird der obige Code nicht funktionieren, das Öffnen des anderen Dokumentes schon, aber nicht das übertragen der Daten in die Felder.

Im Beispiel wird ein Dokument im selben Pfad wie das Quelldokument geöffnet. Kommt das für dich nicht in Frage muss die Zeile zum Öffnen des anderen PDF-Dokumentes umgeschrieben werden (das Format des Pfades beachten!):
var newdoc = app.openDoc("/c/deinpfad/dok2.pdf");

Eine Acrobat Javascript API Referenz gibt es hier zum nachlesen.

Sorry wenn das eventuell zu viel für dich ist, aber so sieht das nun mal aus face-smile

Grüße Uwe
Member: colinardo
colinardo Mar 24, 2015 at 17:16:51 (UTC)
Goto Top
Wenns das dann war, den Beitrag bitte noch auf gelöst setzen. Merci.