PDF: Links

Überblick

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]

Umsetzung in jadice

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 Instructions 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 InstructionExecutors 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.

[jadice document platform Version 5.5.12.1: Dokumentation für Entwickler. Veröffentlicht: 2021-08-17]