Memperbarui tautan PDF di Java

Tautan yang ada dapat diedit dengan menemukan anotasi tautan pada halaman dan memperbarui baik penampilannya maupun aksinya.

Memperbarui warna teks yang ditautkan

Gunakan contoh ini ketika area teks yang dicakup oleh anotasi tautan harus diwarnai ulang.

  1. Buka PDF sumber Document.
  2. Temukan anotasi tautan dan buat persegi pencarian teks dari setiap area anotasi.
  3. Ubah warna fragmen teks yang cocok dan simpan dokumen.
public static void linkAnnotationUpdateTextColor(Path inputFile, Path outputFile) {
    try (Document document = new Document(inputFile.toString())) {
        for (Annotation annotation : document.getPages().get_Item(1).getAnnotations()) {
            if (annotation.getAnnotationType() == AnnotationType.Link) {
                TextFragmentAbsorber absorber = new TextFragmentAbsorber();
                Rectangle rect = annotation.getRect();
                rect.setLLX(rect.getLLX() - 2);
                rect.setLLY(rect.getLLY() - 2);
                rect.setURX(rect.getURX() + 2);
                rect.setURY(rect.getURY() + 2);
                absorber.setTextSearchOptions(new TextSearchOptions(rect));
                absorber.visit(document.getPages().get_Item(1));
                for (TextFragment textFragment : absorber.getTextFragments()) {
                    textFragment.getTextState().setForegroundColor(Color.getRed());
                }
            }
        }

        document.save(outputFile.toString());
    }
}

Memperbarui warna batas tautan

Gunakan contoh ini ketika warna yang terlihat dari anotasi tautan yang ada harus diubah.

  1. Buka PDF sumber Document.
  2. Iterasikan melalui anotasi halaman dan filter untuk objek LinkAnnotation.
  3. Perbarui warna anotasi tautan dan simpan dokumen.
public static void linkAnnotationUpdateBorder(Path inputFile, Path outputFile) {
    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;
                linkAnnotation.setColor(Color.getRed());
            }
        }

        document.save(outputFile.toString());
    }
}

Memperbarui tujuan tautan web

Gunakan contoh ini ketika tautan web yang ada harus mengarah ke URI baru.

  1. Buka PDF sumber Document.
  2. Temukan anotasi tautan yang tindakannya adalah GoToURIAction.
  3. Ganti URI dan simpan dokumen yang diperbarui.
public static void linkAnnotationUpdateWebDestination(Path inputFile, Path outputFile) {
    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();
                    action.setURI("https://www.aspose.com");
                }
            }
        }
        document.save(outputFile.toString());
    }
}