Hubo un tiempo en que solíamos discutir el contenido del documento y los comentarios en largas cadenas de correo electrónico con múltiples archivos adjuntos y diferentes versiones de archivos. Ahora podemos simplemente usar anotaciones para marcar el documento con mensajes y respuestas y enviarlo. En este artículo, aprenderá cómo anotar documentos PDF mediante programación en Java con su aplicación. Además, veremos cómo eliminar anotaciones de archivos PDF utilizando la misma API de Java.

Los siguientes son los temas tratados brevemente a continuación:

API de Java del anotador de PDF

Para manejar las anotaciones de su documento e imágenes dentro de sus aplicaciones Java, GroupDocs proporciona GroupDocs.Annotation for Java. Con la API, puede agregar, eliminar y extraer anotaciones de documentos de procesamiento de texto, hojas de cálculo, presentaciones, imágenes, mensajes de correo electrónico, Visio * dibujos*, algunos AutoCAD y formatos de imágenes digitales como DICOM. Además, la API permite anotar archivos PDF. Puede echar un vistazo a la documentación para conocer la larga lista de formatos de documentos admitidos para la anotación.

Descargar y configurar

Obtenga la biblioteca de anotaciones de las descargas o simplemente agregue la siguiente configuración pom.xml en sus aplicaciones Java basadas en Maven para probar los ejemplos de este artículo, así como muchos más ejemplos disponibles en GitHub. Para obtener más información, puede visitar la Referencia API.

<repository>
	<id>GroupDocsJavaAPI</id>
	<name>GroupDocs Java API</name>
	<url>http://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
        <groupId>com.groupdocs</groupId>
        <artifactId>groupdocs-annotation</artifactId>
        <version>20.2</version> 
</dependency>

Agregar anotaciones a PDF en Java

Pasemos rápidamente a agregar algunos de los diferentes tipos de anotaciones al documento PDF. Como hay muchos tipos diferentes de anotaciones, es posible que no las cubramos todas en este artículo. Solo los mencionaré, y usted puede aprender sobre cada anotación individualmente.

  • Anotación de área/rectángulo

  • Flecha

  • Distancia

  • Elipse

  • Destacar

  • Enlace

  • Punto

  • Polilínea

  • Reemplazo

  • Redacción de recursos

  • Tachar

  • Campo de texto

  • Redacción de texto

  • Subrayado

  • Marca de agua

Comencemos agregando algunos de estos en un documento PDF.

Agregar anotación de flecha a PDF usando Java

Los siguientes son los pasos para agregar una anotación de flecha a un documento PDF.

Anotación de flecha
  • Cargue el documento PDF utilizando la clase Annotator.
  • Inicialice la anotación de flecha usando la clase ArrowAnnotation.
  • Establezca la posición y el tamaño de la flecha usando el método setBox de ArrowAnnotation.
  • Agregue la anotación de flecha creada al objeto Annotator.
  • Guarde el PDF anotado proporcionando la ruta usando el método guardar.

El siguiente ejemplo de código muestra cómo agregar una anotación de flecha a un documento PDF usando Java.

// Agregar anotación de flecha a PDF usando Java
final Annotator annotator = new Annotator("document.pdf");
ArrowAnnotation arrow = new ArrowAnnotation();
arrow.setBox(new Rectangle(100, 100, 100, 100)); // (x, y, width, height)
annotator.add(arrow);
annotator.save("path/annotated-with-arrow.pdf");

Insertar anotación de área o rectángulo en PDF usando Java

Puede personalizar cualquier anotación mientras la agrega al documento. Los siguientes son los pasos para agregar una anotación de área o rectángulo a un documento PDF con un poco más de personalización. Es similar a agregar una anotación de flecha, pero usa la clase AreaAnnotation en lugar de ArrowAnnotation.

  • Cargue el documento PDF usando la clase Annotator.
  • Inicialice la anotación de rectángulo usando la clase AreaAnnotation.
  • Establezca la posición y el tamaño del rectángulo usando el método setBox de AreaAnnotation.
  • Configure otras propiedades como color, fondo, opacidad, estilo, ancho del lápiz o incluso mensajes y tiempo .
  • Agregue la anotación de rectángulo creada al objeto Annotator.
  • Guarde el PDF anotado proporcionando la ruta usando el método guardar.
Anotación de área o rectángulo

El siguiente ejemplo de código muestra cómo agregar una anotación de área/rectángulo a un documento PDF usando Java.

// Agregar anotación de área o anotación de rectángulo a PDF usando Java
final Annotator annotator = new Annotator("document.pdf");
AreaAnnotation area = new AreaAnnotation();
area.setBox(new Rectangle(50, 100, 500, 100));
area.setCreatedOn(Calendar.getInstance().getTime());
area.setMessage("Annotate documents and images.");
area.setOpacity(0.7);
area.setPenColor(-13076963);
area.setPenStyle(PenStyle.Dash);
area.setPenWidth((byte) 3);
// agregar al documento
annotator.add(area);
annotator.save("path/annotated-with-rectangle.pdf");

Agregue anotaciones ovaladas o elípticas a PDF usando Java

Los siguientes son los pasos para agregar una anotación ovalada o una anotación elíptica a un documento PDF.

Elipses o anotación ovalada
  • Cargue el documento PDF utilizando la clase Annotator.
  • Inicialice la anotación de elipse usando la clase EllipseAnnotation.
  • Establezca la posición y el tamaño de la elipse usando el método setBox de EllipseAnnotation.
  • Agregue la anotación de elipse creada al objeto Annotator.
  • Guarde el PDF anotado proporcionando la ruta usando el método guardar.

El siguiente ejemplo de código muestra cómo agregar una anotación ovalada o elíptica a un documento PDF mediante Java.

// Agregue anotaciones ovaladas o elípticas en PDF usando Java
final Annotator annotator = new Annotator("document.pdf");
// Anotación ovalada o elíptica
EllipseAnnotation ellipse = new EllipseAnnotation();
ellipse.setBox(new Rectangle(275, 505, 300, 80));
// agregar al documento
annotator.add(area);
annotator.save("path/annotated-with-ellipse.pdf");

Insertar anotación de distancia en PDF usando Java

Anotación de distancia

También puede agregar la anotación de distancia para mostrar la distancia entre dos puntos. Los siguientes son los pasos para agregar una anotación de distancia al documento PDF.

  • Cargue el documento PDF utilizando la clase Annotator.
  • Inicialice la anotación de distancia usando la clase DistanceAnnotation.
  • Establezca el tamaño y la posición de la anotación utilizando el método setBox de DistanceAnnotation.
  • Agregue la anotación de distancia creada al objeto Annotator.
  • Guarde el PDF anotado proporcionando la ruta usando el método guardar.

El siguiente ejemplo de código muestra cómo agregar una anotación de distancia a un documento PDF usando Java.

// Anotación de distancia usando Java
final Annotator annotator = new Annotator("document.pdf");
// Anotación de distancia
DistanceAnnotation distance = new DistanceAnnotation();
distance.setBox(new Rectangle(775, 235, 0, 150));
// agregar al documento
annotator.add(area);
annotator.save("path/annotated-with-distance.pdf");

Código completo

Para resumir, aquí está el código Java con la salida que muestra todas las anotaciones y mensajes con respuestas usando el código Java mencionado.

Anotaciones añadidas a PDF

El siguiente código a continuación agrega flechas, rectángulos, elipses, anotaciones de distancia, mensajes y respuestas a un archivo PDF.

// Agregue múltiples anotaciones a PDF usando Java
// Agregar anotaciones de flecha, área, óvalo (elipse), distancia a PDF con mensajes y respuestas usando Java
final Annotator annotator = new Annotator(Constants.INPUT);
// Configuración de respuestas
Reply reply1 = new Reply();
reply1.setComment("Please look in to these issues.");
reply1.setRepliedOn(Calendar.getInstance().getTime());

Reply reply2 = new Reply();
reply2.setComment("Change Description");
reply2.setRepliedOn(Calendar.getInstance().getTime());

Reply reply3 = new Reply();
reply2.setComment("On-Premises APIs");
reply2.setRepliedOn(Calendar.getInstance().getTime());

Reply reply4 = new Reply();
reply2.setComment("Add images as well.");
reply2.setRepliedOn(Calendar.getInstance().getTime());

java.util.List<Reply> replies = new ArrayList<Reply>();
replies.add(reply1);
replies.add(reply2);
replies.add(reply3);
replies.add(reply4);
// Anotación de flecha ================================
ArrowAnnotation arrow = new ArrowAnnotation();
arrow.setBox(new Rectangle(560, 250, 60, -60));
arrow.setCreatedOn(Calendar.getInstance().getTime());
arrow.setMessage("This image is little upwards.");
arrow.setOpacity(0.7);
arrow.setPenColor(-3407872);
arrow.setPenWidth((byte) 2);
arrow.setReplies(replies.subList(0, 1));
// Anotación de área ===================================
AreaAnnotation area = new AreaAnnotation();
area.setBox(new Rectangle(50, 100, 500, 100));
area.setCreatedOn(Calendar.getInstance().getTime());
area.setMessage("Annotate documents and images.");
area.setOpacity(0.7);
area.setPenColor(-13076963);
area.setPenStyle(PenStyle.Dash);
area.setPenWidth((byte) 3);
area.setReplies(replies.subList(1, 2));
// Anotación ovalada o elíptica ========================
EllipseAnnotation ellipse = new EllipseAnnotation();
ellipse.setBox(new Rectangle(275, 505, 300, 80));
ellipse.setCreatedOn(Calendar.getInstance().getTime());
ellipse.setMessage("Shows all the available Annotation APIs.");
ellipse.setOpacity(0.7);
ellipse.setPenColor(-16034924);
ellipse.setPenStyle(PenStyle.Dot);
ellipse.setPenWidth((byte) 3);
ellipse.setReplies(replies.subList(2, 3));
// Anotación de distancia ===============================
DistanceAnnotation distance = new DistanceAnnotation();
distance.setBox(new Rectangle(775, 235, 0, 150));
distance.setCreatedOn(Calendar.getInstance().getTime());
distance.setMessage("This is the heading area");
distance.setOpacity(0.7);
distance.setPenColor(-21197);
distance.setPenStyle(PenStyle.Solid);
distance.setPenWidth((byte) 1);
distance.setReplies(replies.subList(3, 4));
// Adición de anotaciones ================================
annotator.add(arrow);
annotator.add(area);
annotator.add(ellipse);
annotator.add(distance);
// Guardar PDF anotado ===============================
annotator.save(outputPath);
annotator.dispose();

Eliminar anotaciones de PDF en Java

Los siguientes pasos muestran cómo eliminar todas las anotaciones de los archivos PDF en Java.

  • Cargue el documento PDF utilizando la clase Annotator.
  • Inicialice las opciones de guardado usando la clase SaveOptions.
  • Establezca los tipos de anotación en Ninguno.
  • Guarde el archivo PDF con todas las anotaciones eliminadas proporcionando la ruta mediante el método guardar.

El siguiente código Java elimina las anotaciones de un archivo PDF.

// Elimina todas las anotaciones del documento PDF usando Java
final Annotator annotator = new Annotator("document.pdf");
SaveOptions saveOptions = new SaveOptions();
saveOptions.setAnnotationTypes(AnnotationType.None);
// Guarde el PDF sin más anotaciones.
annotator.save("path/annotations-removed.pdf", saveOptions);
annotator.dispose();

Conclusión

En resumen, ha aprendido a agregar anotaciones a un PDF dentro de las aplicaciones Java. Además, ha visto cómo eliminar todas las anotaciones de cualquier archivo PDF. Ahora, debe estar seguro de crear su propia aplicación Java de anotación de documentos. Puede admitir diferentes tipos de anotaciones utilizando GroupDocs.Annotation for Java.

Para obtener más detalles, opciones y ejemplos, puede visitar la documentación y el repositorio GitHub. Para consultas adicionales, comuníquese con el soporte en el foro.

Ver también