Annotations

Tento průvodce ukazuje, jak pomocí hierarchie tříd Annotation v Aspose.PDF FOSS pro Java přidávat, konfigurovat a odstraňovat PDF anotace. Naučíte se vytvářet widgetové, volně textové, zvýrazňovací a kruhové anotace a pomocí PdfAnnotationEditor je zploštit nebo smazat.

Hierarchie anotací

Abstraktní třída Annotation je základem pro všechny PDF anotace. Všechny anotace jsou umístěny na Page při Rectangle a jsou přidány pomocí page.getAnnotations().add(annotation).

WidgetAnnotation

WidgetAnnotation představuje formulářový widget. Vzhled je řízen pomocí AppearanceCharacteristics, který poskytuje setBorder(), setBackground(), setRotate() a setCaption().

try (Document doc = new Document()) {
    PageCollection pages = doc.getPages();
    Page page = pages.add();
    WidgetAnnotation w = new WidgetAnnotation(page, new Rectangle(0, 0, 100, 50));
    w.getCharacteristics().setBorder(Color.fromRgb(1, 0, 0));
    w.getCharacteristics().setCaption("Submit");
    page.getAnnotations().add(w);
    doc.save("annotated.pdf");
}

FreeTextAnnotation

FreeTextAnnotation zobrazuje textový popisek na určeném místě. Přijímá DefaultAppearance pro nastavení písma, velikosti a barvy textu anotace.

DefaultAppearance da = new DefaultAppearance("Helv", 12, Color.BLACK);
FreeTextAnnotation fta = new FreeTextAnnotation(page,
    new Rectangle(50, 50, 200, 100), da);
fta.setContents("Review comment here");
page.getAnnotations().add(fta);

setCallout(double[][]) nastaví tříbodovou čáru výzvy pro anotaci. getIntent() vrací hodnotu FreeTextIntent anotace.

Anotace značkování

HighlightAnnotation a UnderlineAnnotation označují textové úseky pomocí čtyřbodových souřadnic. Metoda getQuadPoints() vrací osmprvkové pole definující čtyři rohy označené oblasti.

try (Document doc = new Document("input.pdf")) {
    PageCollection pages = doc.getPages();
    Page page = pages.get(1);
    HighlightAnnotation h = new HighlightAnnotation(page,
        new Rectangle(100, 200, 300, 220));
    page.getAnnotations().add(h);
    doc.save("highlighted.pdf");
}

CircleAnnotation a CaretAnnotation

CircleAnnotation vykresluje elipsu v daném obdélníku; CaretAnnotation označuje místo vložení v textu. Oba rozšiřují Annotation a sdílejí stejné vlastnosti barvy a okraje.

try (Document doc = new Document()) {
    PageCollection pages = doc.getPages();
    Page page = pages.add();
    CircleAnnotation circle = new CircleAnnotation(page, new Rectangle(100, 100, 200, 200));
    circle.setColor(Color.fromRgb(0, 0, 1));
    page.getAnnotations().add(circle);
    doc.save("circle.pdf");
}

Zplošťování anotací

Použijte PdfAnnotationEditor.flattenAnnotations() k sloučení všech anotací do proudu obsahu stránky, čímž je učiníte needitovatelnými.

try (PdfAnnotationEditor editor = new PdfAnnotationEditor()) {
    editor.bindPdf("annotated.pdf");
    editor.flattenAnnotations();
    editor.save("flat.pdf");
}

Odstraňování anotací podle typu

Zavolejte deleteAnnotations(type) s názvem typu anotace, abyste odstranili všechny anotace tohoto typu z každé stránky vázaného dokumentu:

try (PdfAnnotationEditor editor = new PdfAnnotationEditor()) {
    editor.bindPdf("input.pdf");
    editor.deleteAnnotations("Highlight");
    editor.save("output.pdf");
}

Viz také:

 Čeština