2016-07-05 4 views
1

Ich habe eine PDF-Datei, die die Werte mehrerer Felder beim Laden basierend auf einem Formular, das der Benutzer auf einer Webseite ausfüllt, setzt. Ich muss diese Felder bei jedem Öffnen der PDF-Datei mit anderen Datenwerten versehen. Ich würde das lieber mit etwas wie localStorage machen, aber ich bin mir nicht sicher, wie ich aus dem PDF JavaScript auf localStorage zugreifen kann (oder wenn das überhaupt möglich ist). Die Felder können ziemlich lang sein - ich vermeide es, die Daten in der URL als eine Abfragezeichenfolge zu senden (z. B. ...doc.pdf?title=Doc), die browser URL character limits überschreiten kann.Wie kann ich mit PDF JavaScript auf den lokalen Browserspeicher zugreifen?

Gibt es eine Möglichkeit, mit PDF JavaScript auf localStorage oder ein anderes lokales Browser-Datenspeichersystem zuzugreifen? Wenn nicht, gibt es einen besseren Weg, um das zu tun?

Ich benutze Acrobat 15 zu add JavaScript to my PDF. Ich muss das resultierende PDF nur in einem Browser öffnen. Browserübergreifende Lösungen werden jedoch bevorzugt.

+0

hier http://stackoverflow.com/questions/26124025/open-pdf-from-html5-storage – MastaBot

+0

@MastaBot diese Frage hat mit dem Speichern und Laden von ganzen PDFs zu tun. Ich habe ein PDF mit JavaScript drin. Ich brauche das JavaScript, um Daten (nur Text) von einer Form des lokalen Speichers des Benutzers zu lesen und seine eigenen PDF-Felder mit diesen Textdaten auszufüllen. – brandaemon

Antwort

0

Wenn diese Benutzer in Ihrer Organisation intern sind und Sie sie anweisen können, Änderungen an ihrer Kopie von Acrobat oder Reader vorzunehmen, können Sie das globale Acrobat-JavaScript-Objekt zum Speichern von Daten verwenden, die in Acrobat-Sitzungen bestehen bleiben. Sie müssen die globale Objektsicherheitsrichtlinie deaktivieren.

enter image description here

Nach Acrobat Neustart werden alle Dokumente Zugriff auf das globale Objekt haben. Sie können Schlüsselwertpaare setzen einige einfache JavaScript mit ...

global.firstName = "Joel"; // Declare firstName to be global 
global.setPersistent("firstName", true); 

später dann Sie einen Feldwert mit dem gespeicherten globalen Wert wie folgt gesetzt werden kann ...

this.getField("First Name").value = global.firstName; 
Verwandte Themen