Mengekstrak tautan PDF di Java

Anda dapat memeriksa tautan PDF dengan mengiterasi anotasi halaman dan memfilter untuk AnnotationType.Link.

Mengekstrak anotasi tautan

Gunakan contoh ini ketika Anda memerlukan lokasi dan informasi halaman untuk anotasi tautan pada sebuah halaman.

  1. Buka PDF sumber Document.
  2. Iterasikan melalui anotasi halaman dan saring untuk anotasi tautan.
  3. Baca indeks halaman dan persegi panjang untuk setiap tautan yang cocok.
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());
            }
        }
    }
}

Gunakan contoh ini ketika Anda perlu membaca URI target dari anotasi tautan web.

  1. Buka PDF sumber Document.
  2. Cari objek LinkAnnotation yang tindakannya adalah GoToURIAction.
  3. Cetak indeks halaman dan target URI untuk setiap hyperlink.
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());
                }
            }
        }
    }
}