dataGroup im Reader entfernen

Fragen und Antworten rund um das Thema JavaScript im LiveCycleDesigner
Antworten
ideenzeit
Beiträge: 11
Registriert: 09.10.2012, 20:37

dataGroup im Reader entfernen

Beitrag von ideenzeit » 01.11.2015, 12:25

Hallo zusammen,

ich bin auf der Suche nach einem Datencontainer, den ich im xdp File anlegen und dann später im Reader (wenn das Formular fertig befüllt wurde) wieder entfernen kann. Der Anwender soll aus vielen Optionen wählen können, die mit Bildern illustriert sind. Letztlich werden aber nur wenige Bilder am Ende benötigt. Ziel ist es, die Speichergröße des ausgefüllten PDFs massiv zu reduzieren. Die Bilder selbst sind schon minimal groß.


Mein erster Ansatz war, die Daten im XDP statisch als dataGroup unter datasets abzulegen. Dann wird das PDF mit erweiterten Readerfunktionen gespeichert. Beim erneuten Speichern des ausgefüllten PDFs im Reader wird die dataGroup dann entfernt:

Code: Alles auswählen

xfa.datasets.nodes.remove(xfa.datasets.nodes.namedItem("myDataGroup"));
Das hat auch funktioniert. Beim Erneuten öffnen des PDFs ist die dataGroup nicht mehr vorhanden (null). Jedoch ist die Speichergröße des PDFs unverändert groß.


Mein zweiter Ansatz war, die Daten dynamisch im Acrobat hinzuzufügen, bevor das PDF die erweiterten Readerfunktionen erhält. Dazu habe ich folgenden Code von radzmar benutzt:

Code: Alles auswählen

var vStream = util.readFileIntoStream();
if (vStream) {
  var vImport = util.stringFromStream(vStream);
  // erzeuge dataValue mit eingelesenen Daten
  var oMyDataValue = xfa.datasets.createNode("dataValue", "myDataValue");
  oMyDataValue.value = vImport;
  // füge dataValue der dataGroup hinzu
  var oMyDataGroup = xfa.datasets.createNode("dataGroup", "myDataGroup");
  oMyDataGroup.nodes.append(oMyDataValue);
  // füge dataGroup datasets hinzu
  xfa.datasets.nodes.append(oMyDataGroup);
}
Leider mit dem selben Resultat wie im ersten Ansatz.


Mein dritter Ansatz war, die Daten dynamisch (also wie im Ansatz 2) im Reader hinzuzufügen (nachdem das PDF die erweiterten Readerfunktionen bekommen hat).
Nun zeigt sich endlich das gewünschte Verhalten: Nachdem finalen speichern benötigt das PDF mehrere MB weniger.


Wenn also die dataGroup im Reader hinzugefügt wird, kann sie auch im Reader vollständig gelöscht werden.
Wenn sie im XDP oder Acrobat hinzugefügt wird, kann sie zwar gelöscht werden, ist jedoch noch irgendwo vorhanden.

1) Kann mir jemand erklären, wo die Daten im Ansatz 1/2 verbleiben?
2) Gibt es eine Möglichkeit, die Daten schon im XDP abzulegen und dennoch löschen zu können?

Vielen Dank im Vorraus!

Antworten