„Named Destinations“, die Sprungziele innerhalb von PDF-Dokumenten,
können schlecht getestet werden, da man sie ja nicht sieht.
Mit dem Hilfsprogramm ExtractNamedDestinations
können
Sie sie aber nach XML extrahieren und anschließend in XPath-basierten Tests verwenden.
Das Kapitel
3.17: „Lesezeichen (Bookmarks) und Sprungziele“
beschreibt diese Tests ausführlich.
Und so sieht das Extraktionsskript aus:
:: :: Extract information about named destinations in a PDF document into an XML file :: @echo off setlocal set CLASSPATH=./lib/pdfunit-2015.10/*;%CLASSPATH% set CLASSPATH=./lib/itext-5.5.1/*;%CLASSPATH% set CLASSPATH=./lib/bouncycastle-jdk15on-150/*;%CLASSPATH% set TOOL=com.pdfunit.tools.ExtractNamedDestinations set OUT_DIR=./tmp set IN_FILE=bookmarksWithPdfOutline.pdf set PASSWD= java %TOOL% %IN_FILE% %OUT_DIR% %PASSWD% endlocal
Die im Beispiel verwendete Datei bookmarksWithPdfOutline.pdf
enthält
verschiedene Sprungziele.
Es entsteht die Datei _named-destinations_bookmarksWithPdfOutline.out.xml
mit folgendem Inhalt:
<?xml version="1.0" encoding="UTF-8"?> <Destination> <Name Page="3 XYZ 36 764 0">destination2.2</Name> <Name Page="3 XYZ 36 800 0">destination2_no_blank<</Name> <Name Page="3 XYZ 36 782 0">destination2.1</Name> <Name Page="2 XYZ 36 800 0">destination1</Name> <Name Page="4 XYZ 36 800 0">destination3 with blank</Name> </Destination>
PDFUnit verwendet intern
SimpleNamedDestination.getNamedDestination(..)
von iText (http://www.itextpdf.com).
Auch hier einen Dank an die Entwickler.