Der Acrobat Reader kann PDF Dateien nicht nur als normale Applikation darstellen, er bindet sich auch als Plug-In in den Webbrowser ein. Gerade dieser Integration in den Browser und damit in das Internet hat viel zur Beliebtheit von PDF beigetragen.
Aus der Sicht von JavaScript verhält sich aber Acrobat eingebettet im Browser ein bisschen anders, als im eigenständigen Modus. Um auf diese Unterschiede reagieren zu können, gibt es am Doc Objekt, das einem PDF Dokument entspricht, die Eigenschaft external. Im Kontext eines Dokuments kann dieser Zustand einfach mit this.external abgefragt werden. Aus der JavaScript Referenz:
Specifies whether the current document is being viewed in the Acrobat application or in an external window (such as a web browser).
Ich möchte diesen Wert beim Laden des Dokuments abfragen. Da ich aber zur Erzeugung der PDF Dateien Acrobat automatisiere, werden in diesem Prozess auch die Dokumente einmal geladen. Ein automatisierter Acrobat mag aber offensichtlich diesen Wert nicht verraten und hängt sich auf.
Alternative frage ich jetzt einfach die path Eigenschaft ab. Damit erhält man den Pfad zum PDF Dokument. Fängt der mit http an, dann kam die Datei vom Webserver und man ist damit im Webbrowser:
// Mag Acrobat nicht immer var external1 = this.external; // Workaround var external2 = (this.path.substr(0, 4) == "http");
© Copyright 2012, Christian Deger
E-mail