Annotations
Deze gids laat zien hoe je PDF-annotaties kunt toevoegen, configureren en verwijderen met behulp van de Annotation klass hiërarchie in Aspose.PDF FOSS voor Java. Je leert widget-, vrije-tekst-, markeer- en cirkelannotaties maken, en ze flatten of verwijderen met PdfAnnotationEditor.
Annotatiehiërarchie
De abstracte Annotation klasse is de basis voor alle PDF-annotaties. Alle annotaties worden gepositioneerd op een Page op een Rectangle en worden toegevoegd via page.getAnnotations().add(annotation).
WidgetAnnotation
WidgetAnnotation vertegenwoordigt een formulierelement. Het uiterlijk wordt gecontroleerd via AppearanceCharacteristics, die setBorder(), setBackground(), setRotate() en setCaption() beschikbaar maakt.
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 toont een tekstballon op een opgegeven locatie. Het accepteert een DefaultAppearance om het lettertype, de grootte en de kleur van de annotatietekst in te stellen.
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[][]) stelt een drie-punts aanroeplijn in voor de annotatie. getIntent() retourneert de FreeTextIntentwaarde van de annotatie.
Markup-annotaties
HighlightAnnotation en UnderlineAnnotation markeren tekstsegmenten met quad-punten. De getQuadPoints()-methode retourneert een array van 8 elementen die de vier hoeken van het gemarkeerde gebied definieert.
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 en CaretAnnotation
CircleAnnotation tekent een ellips op de opgegeven rechthoek; CaretAnnotation markeert een invoegpunt in de tekst. Beide breiden Annotation uit en delen dezelfde kleur- en randeigenschappen.
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");
}Flattenen van annotaties
Gebruik PdfAnnotationEditor.flattenAnnotations() om alle annotaties samen te voegen in de paginacontentstroom, waardoor ze niet bewerkbaar zijn.
try (PdfAnnotationEditor editor = new PdfAnnotationEditor()) {
editor.bindPdf("annotated.pdf");
editor.flattenAnnotations();
editor.save("flat.pdf");
}Annotaties verwijderen op type
Roep deleteAnnotations(type) op met een annotatietypenaam om alle annotaties van dat type van elke pagina in het gekoppelde document te verwijderen:
try (PdfAnnotationEditor editor = new PdfAnnotationEditor()) {
editor.bindPdf("input.pdf");
editor.deleteAnnotations("Highlight");
editor.save("output.pdf");
}