XML Daten per Javascript in PDF-Formular

Fragen & Antworten zur Steuerung von 3D Inhalten in PDFs über JavaScript
Antworten
wschlegel
Beiträge: 8
Registriert: 26.11.2012, 12:55

XML Daten per Javascript in PDF-Formular

Beitrag von wschlegel » 15.11.2013, 09:34

Hallo zusammen,

ich suche schon seit Längerem nach einer Lösung für folgende Probleme:

Ich habe in einem PDF (mit Acrobat Pro) einen Button erstellt, mit dem ich mittels Javascript XML Daten (Technische Daten einer Maschine) einlese. Diese werden über Formularfelder in verschiedene Dokumente wie Typenschild, diverse Betriebsanleitungsseiten und CD Label gefüllt und anschließend gedruckt.

Durch Klicken des Buttons wird folgender Code ausgeführt:

Code: Alles auswählen

//Dateiauswahl
var myImport = importDataObject("Auftragsdaten");

//Ausgewählte Datei importieren und als Anhang speichern
var myData = this.getDataObjectContents("Auftragsdaten");
var myDataStr = util.stringFromStream(myData, "utf-8");
var myDataXML = XMLData.parse(myDataStr);

//Sprache ermitteln
var language = myDataXML.SpracheTypenschild.value;
var languageFile = language + ".xml";

//Sprachdatei einlesen
var myLanguage = this.getDataObjectContents(languageFile);
var myLanguageStr = util.stringFromStream(myLanguage, "utf-8");
var myLanguageXML = XMLData.parse(myLanguageStr);

//Maschinenart ermitteln
var myType = myDataXML.Typ.value;

//Übersetzung der Maschinenart auslesen
var TypTranslation = myLanguageXML.Typ.("myType").value;
//Dieser Aufbau ist nich korrekt, das ist mir bekannt
//Der Teil in Klammer und Anführungszeichen soll die Variable sein!
this.getField("Typ").value = TypTranslation;

...
Über ein XML-Tag bekomme ich den Maschinentyp (z.B. CNC-Kappanlage) als Nummer (z.B. Typ_05) welcher abhängig von der Muttersprache des Kunden übersetzt werden muss. In einem anderen XML-Tag steht die Sprache (z.B. en). Daraus erstelle ich den Namen der Sprachdatei (en.xml) welche als Anhang im PDF gespeichert ist.

Nun soll in der Datei en.xml der Inhalt des Tags <Typ_05> ausgelesen und im PDF in das entsprechende Formularfeld gefügt werden, dies geschieht über folgende Zeile:

Code: Alles auswählen

var TypTranslation = myLanguageXML.Typ.("myType").value;
//Dieser Aufbau ist nich korrekt, das ist mir bekannt
//Der Teil in Klammer und Anführungszeichen soll die Variable sein!
this.getField("Typ").value = TypTranslation;
Ich möchte die Anweisung

myLanguageXML.Typ.("myType").value

mit der Variablen myType zusammenbauen, was allerdings nicht funktioniert, da nach dem Kombinieren die Anweisung falsch interpretiert wird. Wie kann ich dieses Problem lösen?

Außerdem werden beim Füllen der Formulardaten Umlaute aus den XML-Tags ignonriert.

Für Eure Hilfe wäre ich sehr dankbar, da ich nun schon einige Zeit vor Google verbracht habe.

Gruß
Wolfgang

theOrangenkopf
Beiträge: 9
Registriert: 07.05.2014, 14:45

XML Daten per Javascript in PDF-Formular

Beitrag von theOrangenkopf » 08.05.2014, 12:36

Hallo,

Code: Alles auswählen

var TypTranslation = myLanguageXML.Typ.("myType").value;
das eingentliche Problem ist ja, dass du gerne einen Tag aus deiner XML auslesen möchtest, den du in einer Variabeln gespeicher hast.

Das ganze funktioniert über die Funktion XMLData.applyXPath.
Ganze Beispiele findest du in den javascript api referenzen.

Dein Ergebnis müsste so aussehen:

Code: Alles auswählen

var TypTranslation = XMLData.applyXPath(myLanguageXML, "/" + myType).value;
Wenn das nicht klappt würde ich ganz gerne einen Blick auf den Aufbau deiner XML-Datei werfen, je nach dem, wo du den ensprechenden Tag stehen hast, muss das Skript eventuell angepasst werden

Antworten