Anotaciones de marca de agua usando Java

Las anotaciones de marca de agua le permiten colocar contenido superpuesto reutilizable en una página mientras lo gestiona a través de la colección de anotaciones.

Agregar una anotación de marca de agua

Utilice este ejemplo cuando necesite una anotación de marca de agua de texto con configuraciones de fuente personalizadas y opacidad.

  1. Abra el PDF de origen Document.
  2. Cree un WatermarkAnnotation y agréguelo a la página.
  3. Configure el TextState, texto de marca de agua, y opacidad, luego guarde el documento.
public static void watermarkAdd(Path inputFile, Path outputFile) {
    try (Document document = new Document(inputFile.toString())) {
        Page page = document.getPages().get_Item(1);

        WatermarkAnnotation watermarkAnnotation = new WatermarkAnnotation(
                page,
                new Rectangle(100, 100, 400, 200, true));

        page.getAnnotations().add(watermarkAnnotation);

        TextState textState = new TextState();
        textState.setForegroundColor(Color.getBlue());
        textState.setFontSize(25);
        textState.setFont(FontRepository.findFont("Arial"));

        watermarkAnnotation.setOpacity(0.5);
        watermarkAnnotation.setTextAndState(new String[]{"HELLO", "Line 1", "Line 2"}, textState);

        document.save(outputFile.toString());
    }
}

Obtener anotaciones de marca de agua

Este ejemplo escanea la colección de anotaciones e imprime el rectángulo de cada anotación de marca de agua.

  1. Abra el PDF de origen Document.
  2. Itere a través de las anotaciones en la página objetivo.
  3. Filtre anotaciones por AnnotationType.Watermark y imprima sus rectángulos.
public static void watermarkGet(Path inputFile) {
    try (Document document = new Document(inputFile.toString())) {
        for (Annotation a : document.getPages().get_Item(1).getAnnotations()) {
            if (a.getAnnotationType() == AnnotationType.Watermark) {
                System.out.println(a.getRect());
            }
        }
    }
}

Eliminar anotaciones de marca de agua

Use este enfoque cuando las anotaciones de marca de agua existentes deban eliminarse del documento.

  1. Abra el PDF de origen Document.
  2. Recopile anotaciones de tipo AnnotationType.Watermark.
  3. Elimine las anotaciones recopiladas y guarde el archivo de salida.
public static void watermarkDelete(Path inputFile, Path outputFile) {
    try (Document document = new Document(inputFile.toString())) {
        List<Annotation> toDelete = new ArrayList<>();
        for (Annotation a : document.getPages().get_Item(1).getAnnotations()) {
            if (a.getAnnotationType() == AnnotationType.Watermark) {
                toDelete.add(a);
            }
        }
        for (Annotation a : toDelete) {
            document.getPages().get_Item(1).getAnnotations().delete(a);
        }
        document.save(outputFile.toString());
    }
}

Temas relacionados con anotaciones