Acronaut Diskussions Forum Home

Freies User Forum für

ADOBE® ACROBAT®

Acronaut Diskussions Forum > Allgemein > Kommentare zum Forum > Formular mit externen Daten füllen
Navigation
Nicht angemeldet

Login | Registrieren 

  

Suche

Erweiterte Suche

Newsletter

Mitgliederliste

Kalender

Moderatoren/Partner

Hilfe

Banner

Kontakt/Impressum
Formular mit externen Daten füllen
 Moderiert von: acronaut Produkt: Adobe LiveCycle Designer V2  

Neue Diskussion

Antworten

Drucken
VerfasserBericht
Ulrike
Member
 

Eintragen seit: 23 Aug 2013
Herkunft: Deutschland
Berichte: 6
Status:  Offline
 Geschrieben: 24 Aug 2013 09:25

Text übernehmen

Antworten
Hallo Euch allen,

ich bin neu hier und freue mich, dass es ein solches Portal gibt.

Was mich aktuell auf der Stelle treten lässt:

Ich möchte Word-Formulare auf PDF umstellen. Dabei muss ich Daten aus einer Inidatei in Felder der PDF-Datei einlesen.

Meine Frage an Euch:
Was muss ich tun, um z. B. aus einer Datei BENUTZERDATEN.INI aus dem Block ADRESSE die Angabe WOHNORT in das Textfeld WOHNORT der PDF-Datei zu holen?

Mit Util.readFileIntoStream scheint man das in Java wohl anzugehen, aber mir fehlen im Moment die nötigen Kenntnisse von Java, um mein Problem selber zu lösen.

Ich kann auch derzeit gar nicht einschätzen, ob ich mich für FormCalc oder Java entscheiden soll - und warum...

Danke für's "Zuhören". Ein schönes Wochenende.

Ulrike

radzmar
Member


Eintragen seit: 25 Okt 2011
Herkunft: Schwerin, Deutschland
Berichte: 895
Status:  Offline
 Geschrieben: 24 Aug 2013 12:22

Text übernehmen

Antworten
Also das Einlesen einer externen Datei wäre nicht das Problem (ab Reader/Acrobat 9.2), aber ohne den Inhalt der ini-Datei zu kennen, kann dir keiner beantworten, wie man die Daten darin auswerten kann.
Wieso überhaupt ini?


Und wichtig ist auch, dass Acrobat kein Java kann, sondern JavaScript. DAS IST NICHT DASSELBE!

Ulrike
Member
 

Eintragen seit: 23 Aug 2013
Herkunft: Deutschland
Berichte: 6
Status:  Offline
 Geschrieben: 25 Aug 2013 07:27

Text übernehmen

Antworten
Danke für die rasche Antwort
richtig, ich meine Javascript.
Folgend ein Auszug aus der Ini-Datei. Sie liegt im Userprofil und wird von vielen anderen Anwendungen (Word, Excel, Access per VBA) ausgewertet, daher Name und Aufbau.
BENUTZERDATEN.INI
[Namenszeilen]
Name1=Unternehmen FlickFlack - Abteilung Werbung
Name2= Unternehmen FlickFlack - Abteilung Personal


[Adresse]
Strasse=Große Allee 1
Postfach=14 60
PLZStr=34454
PLZPF=34444
Wohnort=Bad Wohlfühlhausen
Tel=05691/893-0
FAX=05691/893-170
EMail=mail@flickflack.de
Bearbeiter=Max Meier
 
Gruß Ulrike

radzmar
Member


Eintragen seit: 25 Okt 2011
Herkunft: Schwerin, Deutschland
Berichte: 895
Status:  Offline
 Geschrieben: 27 Aug 2013 15:05

Text übernehmen

Antworten
Ok, ich habe dir mal ein Beispiel erstellt, dass eine ini-Datei nach dem zuvorgenannten Schema impotieren kann, nach passenden Einträgen absucht und dann die entsprechenden Felder vorbefüllt.
Das Ganze ist aber nur als Skizze zu betrachten und kann noch diverse Optimierungen vertragen, aber dafür fehlt mir die Zeit.

Anlage: INI-Datei_Einlesen.pdf (119 Mal aufgenommen)

Ulrike
Member
 

Eintragen seit: 23 Aug 2013
Herkunft: Deutschland
Berichte: 6
Status:  Offline
 Geschrieben: 27 Aug 2013 15:25

Text übernehmen

Antworten
Lieber Radzmar,

danke für Deine Antwort.

Ich habe in den letzten Tagen ganz viel ausprobiert in Sachen Javascript im  LifeCycleDesigner in Bezug auf "Einlesen externer Daten auf dem Client". Und kam zu KEINEM lauffähigem Ergebnis. - Immer endete ich in Fehlermeldungen bezüglich Sicherheitseinstellungen. Was ist das denn nun wieder?

Großes Danke für Deine heutige Antwort. Ich werde gleich ausprobieren und dann Rückmeldung geben.

Ulrike

Ulrike
Member
 

Eintragen seit: 23 Aug 2013
Herkunft: Deutschland
Berichte: 6
Status:  Offline
 Geschrieben: 28 Aug 2013 06:36

Text übernehmen

Antworten
Das mit dem Separieren der Daten hat mir sehr geholfen, ich habe das viel umständlicher gemacht. Danke.
Mein Problem ist noch immer, dass ich den Öffnen-Dialogs nicht nehmen kann, ich muss für die Textdatei deren Pfad bei util.readFileIntoStream({bEncodeBase64:true}) angeben, damit die Ini-Daten sich automatisch einziehen. Die Datei liegt bei jedem Anwender lokal auf C: in seinem Userprofil\Unterordner Bearbeiterdaten. Ich habe in anderen Foren auch nur dieses Problem, aber keinen Lösungsansatz gefunden. Zu util.readFileIntoStream finde ich nur die Aussage, dass, wenn man den Pfad wegläßt, der Öffnen-Dialog kommt. Finde aber kein Beispiel für eine Pfadangabe. Wahrscheinlich ist das auch mit der Systemvariable Userprofile ein Problem. Weißt Du evtl. mehr?

Ulrike

radzmar
Member


Eintragen seit: 25 Okt 2011
Herkunft: Schwerin, Deutschland
Berichte: 895
Status:  Offline
 Geschrieben: 29 Aug 2013 13:04

Text übernehmen

Antworten
Hallo,

hier mal ein Auszug aus dem JavaScript-Handbuch.


readFileIntoStream

Loads an external file into a JavaScript stream, optionally base64 encodes it, and returns the content as a
base64 encoded stream.

Parameters:

cDIPath (optional) A device-independent path to an arbitrary file on the user's hard drive.
This path may be absolute or relative to the current document.
If not specified, the user is presented with the File Open dialog to locate the file.
If the cDIPath parameter is specified, this method can only be executed in privileged
context, during a batch or console event (or when the document is certified with a
certificate trusted to execute "embedded high privileged JavaScript").

bEncodeBase64 (optional) If true, base64-encode the file content.

Returns:

The File content as a ReadStream object that is optionally base 64-encoded.

Example:

Assume there is a text field myField in this document. This example reads the contents of a file
c:/data/myData.txt in a ReadStream object, converts it to a string, and displays it in the multiline text field.
var rStream = util.readFileIntoStream("/c/data/myData.txt");
var cFile = util.stringFromStream(rStream);
this.getField("myTextField").value = cFile;


Den Pfad kann man also nur mitgeben, wenn das Formular entweder zertifiziert eird oder das Skript aus einem vertrauenswürdigen Kontext z.B. einem Folder Level Script heraus aufgerufen wird.

Ulrike
Member
 

Eintragen seit: 23 Aug 2013
Herkunft: Deutschland
Berichte: 6
Status:  Offline
 Geschrieben: 29 Aug 2013 17:22

Text übernehmen

Antworten
Ich würde es ja mit einem Folder Level Script zu versuchen.

Aber:
Javascript erwartet seit Windows7 den User-Ordner an neuem Ort.
Daher eine Fehlermeldung bei app.getPath("user","javascript").

Um nun diesen ...\Privileged\... - Pfad ansprechen zu können, müsste ich bei allen Usern dafür Sorge tragen, dass dieses Ordner existiert und mit den erforderlichen Dateine (Ini und *js) versorgt ist. Kaum durchzusetzen.

Bin diesbezüglich u. a. auch auf diese Seite gestoßen:

http://acrobatninja.blogspot.de/2011/09/acrobat-1011-javascript-changes.html




radzmar
Member


Eintragen seit: 25 Okt 2011
Herkunft: Schwerin, Deutschland
Berichte: 895
Status:  Offline
 Geschrieben: 29 Aug 2013 18:53

Text übernehmen

Antworten
Also der Pfad für folder Level scripts hängt nicht vom Betriebssystem ab, sondern von der Version des Adobe Reader.
Ab 10.1 muss der Previleged-Ordner vorhanden sein oder man nimmt den JavaScript-Ordner der App selbst.

Also app.getPath("app", "javascript");

Ulrike
Member
 

Eintragen seit: 23 Aug 2013
Herkunft: Deutschland
Berichte: 6
Status:  Offline
 Geschrieben: 29 Aug 2013 19:11

Text übernehmen

Antworten
Stimmt, hast Recht.
Ich hoffe, ich komme jetzt alleine klar.
Danke für Deinen Input.



 Uhrzeit 05:45





Powered by WowBB 1.7 - Copyright © 2003-2006 Aycan Gulez
Seite erstellt in 0.1183 Sekunden (39% DB + 61% PHP). 19 verarbeitete Abfragen.