Neben anderen Annotationen gibt es in PDF die Möglichkeit, sogenannte Link-Annotationen einzufügen. Diese beinhalten entweder einen Link auf eine Stelle im selben Dokument (zum Beispiel auf ein anderes Kapitel oder auf eine relevante Textstelle) oder eine Aktion die bei Aktivierung durch das darstellende Programm ausgeführt wird. Eine dieser Aktionen ist die URI-Aktion, die auf eine Ressource außerhalb des Dokuments verweist. Mit dieser Aktion ist es zum Beispiel möglich, Hyperlinks zu Webseiten in PDF-Dokumente einzubinden.[81]
In jadice werden diese PDF-Actions durch Implementierungen des Instruction
Interface repräsentiert. Innerhalb der Instruction
werden alle Daten
gesammelt, die benötigt werden um die PDF-Action auszuführen.
Zum Beispiel wird aus einer PDF-URI-Action eine
URIInstruction
erzeugt, welche die im Dokument definierte
Ziel-URI enthält. Die Ausführung der erzeugten
Instruction
s erfolgt mit Implementierungen des Interface
InstructionExecutor
. Innerhalb der Klasse, die das Interface implementiert,
wird dabei festgelegt, welche Art von Instruktion durch die jeweilige
Implementierung ausgeführt werden kann und wie diese Instruktion ausgeführt
werden soll. Weiterführende Informationen finden sich in „Instructions und Executors“.
Die Verteilung der auszuführenden Aktionen auf die jeweiligen
InstructionExecutor
-Implementierungen erfolgt wiederum durch das
EmbeddedLinkTool
. Um das EmbeddedLinkTool
zu verwenden muss dieses im
ToolManager
registriert werden. Weiterhin müssen die zu verwendenden
InstructionExecutor
im EmbeddedLinkTool
registriert sein. Wird nun eine
Instruktion aktiviert, verteilt das EmbeddedLinkTool
diese auf all die
InstructionExecutor
, die diese Instruktion ausführen können. [82]
Die Behandlung von Instruktionen, die PDF-Actions innerhalb
eines Dokuments betreffen, kann mit dem mitgelieferten
PortfolioInstructionExecutor
erfolgen. Für Verlinkungen auf Ziele außerhalb
des Dokuments, wie zum Beispiel URIs, muss die Implementierung eines
entsprechenden InstructionExecutor
s durch den Integrator vorgenommen werden.
Ein Beispiel, wie eine solche Implementierung aussehen könnte wird in der
Demo-Klasse URIExecutor
gezeigt.
[81] Eine vollständige Referenz hierzu findet sich in den Abschnitten 12.5.6.5 Link-Annotations und 12.6 Actions in [PDF 32000-1:2008]
[82] Das Kapitel „Der ToolManager
“ beinhaltet eine
detaillierte Erklärung des ToolManager
und der verfügbaren
Tools.