Annotations

Ten przewodnik pokazuje, jak dodawać, konfigurować i usuwać adnotacje PDF przy użyciu hierarchii klas Annotation w Aspose.PDF FOSS dla Java. Nauczysz się tworzyć adnotacje typu widget, tekstowe, podświetlenia i okręgi oraz spłaszczać lub usuwać je za pomocą PdfAnnotationEditor.

Hierarchia adnotacji

Abstrakcyjna klasa Annotation jest podstawą wszystkich adnotacji PDF. Wszystkie adnotacje są pozycjonowane na Page przy Rectangle i są dodawane za pomocą page.getAnnotations().add(annotation).

WidgetAnnotation

WidgetAnnotation reprezentuje widżet formularza. Wygląd jest kontrolowany przez AppearanceCharacteristics, który udostępnia setBorder(), setBackground(), setRotate() i 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 wyświetla tekstowy dymek w określonym miejscu. Akceptuje DefaultAppearance, aby ustawić czcionkę, rozmiar i kolor tekstu adnotacji.

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[][]) ustawia linię wywołania z trzema punktami dla adnotacji. getIntent() zwraca wartość FreeTextIntent adnotacji.

Adnotacje znaczników

HighlightAnnotation i UnderlineAnnotation oznaczają fragmenty tekstu przy użyciu punktów kwadraturowych. Metoda getQuadPoints() zwraca 8-elementową tablicę definiującą cztery rogi zaznaczonego obszaru.

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

CircleAnnotation rysuje elipsę w podanym prostokącie; CaretAnnotation oznacza punkt wstawienia w tekście. Oba rozszerzają Annotation i mają te same właściwości koloru oraz obramowania.

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

Spłaszczanie adnotacji

Użyj PdfAnnotationEditor.flattenAnnotations(), aby scalić wszystkie adnotacje ze strumieniem zawartości strony, czyniąc je nieedytowalnymi.

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

Usuwanie adnotacji według typu

Wywołaj deleteAnnotations(type) z nazwą typu adnotacji, aby usunąć wszystkie adnotacje tego typu ze wszystkich stron w powiązanym dokumencie:

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

Zobacz także

 Polski