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