Java での PDF リンクの抽出
Contents
[
Hide
]
ページ注釈を反復処理し、AnnotationType.Link でフィルタリングすることで、PDF リンクを検査できます。
リンク注釈の抽出
ページ上のリンク注釈の位置とページ情報を取得する必要がある場合は、この例を使用してください。
- ソース PDF の Document を開いてください。
- ページ注釈を反復処理し、リンク注釈をフィルタリングしてください。
- 一致する各リンクのページインデックスと矩形を読み取ってください。
public static void extractLinkAnnotation(Path inputFile) {
try (Document document = new Document(inputFile.toString())) {
for (Annotation annotation : document.getPages().get_Item(1).getAnnotations()) {
if (annotation.getAnnotationType() == AnnotationType.Link && annotation instanceof LinkAnnotation) {
LinkAnnotation linkAnnotation = (LinkAnnotation) annotation;
System.out.println("Page: " + linkAnnotation.getPageIndex()
+ ", location: " + linkAnnotation.getRect());
}
}
}
}
ハイパーリンクの宛先の抽出
Web リンク注釈から対象の URI を読み取る必要がある場合は、この例を使用してください。
- ソース PDF の Document を開いてください。
- アクションが GoToURIAction オブジェクトである LinkAnnotation を検索してください。
- 各ハイパーリンクについて、ページインデックスと URI ターゲットを出力してください。
public static void extractHyperlinks(Path inputFile) {
try (Document document = new Document(inputFile.toString())) {
for (Annotation annotation : document.getPages().get_Item(1).getAnnotations()) {
if (annotation.getAnnotationType() == AnnotationType.Link && annotation instanceof LinkAnnotation) {
LinkAnnotation linkAnnotation = (LinkAnnotation) annotation;
if (linkAnnotation.getAction() instanceof GoToURIAction) {
GoToURIAction action = (GoToURIAction) linkAnnotation.getAction();
System.out.println("Page " + linkAnnotation.getPageIndex() + ", URI:" + action.getURI());
}
}
}
}
}