Annotations

Dieser Leitfaden zeigt, wie man PDF-Annotationen mithilfe der Annotation-Klassenhierarchie in Aspose.PDF FOSS für Java hinzufügt, konfiguriert und entfernt. Sie lernen, widget-, free-text-, highlight- und circle-Annotationen zu erstellen und sie mithilfe von PdfAnnotationEditor zu flachzulegen oder zu löschen.

Annotationen-Hierarchie

Die abstrakte Annotation-Klasse ist die Basis für alle PDF-Annotationen. Alle Annotationen werden auf einem Page an einem Rectangle positioniert und über page.getAnnotations().add(annotation) hinzugefügt.

WidgetAnnotation

WidgetAnnotation stellt ein Formular-Widget dar. Das Aussehen wird über AppearanceCharacteristics gesteuert, das setBorder(), setBackground(), setRotate() und setCaption() bereitstellt.

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 zeigt einen Text-Callout an einer angegebenen Position an. Es akzeptiert ein DefaultAppearance, um Schriftart, Größe und Farbe des Annotationstextes festzulegen.

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[][]) legt eine dreipunktige Callout-Linie für die Annotation fest. getIntent() gibt den FreeTextIntent-Wert der Annotation zurück.

Markup-Annotationen

HighlightAnnotation und UnderlineAnnotation markieren Textabschnitte mit Quad-Punkten. Die getQuadPoints()-Methode gibt ein 8-elementiges Array zurück, das die vier Ecken des markierten Bereichs definiert.

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 und CaretAnnotation

CircleAnnotation zeichnet eine Ellipse im angegebenen Rechteck; CaretAnnotation markiert einen Einfügepunkt im Text. Beide erweitern Annotation und teilen dieselben Farb- und Rahmen-Eigenschaften.

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");
}

Flattening-Annotationen

Verwenden Sie PdfAnnotationEditor.flattenAnnotations(), um alle Annotationen in den Seiteninhalts-Stream zu übernehmen, wodurch sie nicht mehr editierbar sind.

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

Entfernen von Annotationen nach Typ

Rufen Sie deleteAnnotations(type) mit einem Annotations-Typnamen auf, um alle Annotationen dieses Typs von jeder Seite im gebundenen Dokument zu entfernen:

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

Siehe auch

 Deutsch