Il fut un temps où nous avions l’habitude de discuter du contenu des documents et des commentaires dans de longs fils de discussion avec plusieurs pièces jointes et différentes versions de fichiers. Maintenant, nous pouvons simplement utiliser des annotations pour baliser le document avec des messages et des réponses et l’envoyer. Dans cet article, vous apprendrez à annoter par programmation des documents PDF en Java avec votre application. De plus, nous verrons comment supprimer les annotations des fichiers PDF en utilisant la même API Java.

Voici les sujets abordés brièvement ci-dessous :

API Java Annotateur PDF

Pour gérer les annotations de votre document et des images dans vos applications Java, GroupDocs fournit GroupDocs.Annotation for Java. À l’aide de l’API, vous pouvez ajouter, supprimer et extraire des annotations de documents de traitement de texte, feuilles de calcul, présentations, images, messages électroniques, Visio * dessins*, certains AutoCAD et formats d’imagerie numérique comme DICOM. De plus, l’API permet d’annoter des fichiers PDF. Vous pouvez consulter la documentation pour connaître la longue liste de formats de document pris en charge pour l’annotation.

Télécharger et configurer

Obtenez la bibliothèque d’annotationsà partir des téléchargements ou ajoutez simplement la configuration pom.xml suivante dans vos applications Java basées sur Maven pour essayer les exemples de cet article ainsi que les nombreux autres exemples disponibles sur GitHub. Pour plus de détails, vous pouvez visiter la API Reference.

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

Ajouter des annotations au PDF en Java

Passons rapidement à l’ajout de certains des différents types d’annotations au document PDF. Comme il existe de nombreux types d’annotations, nous ne couvrirons peut-être pas tout dans cet article. Je me contenterai de les mentionner, et vous pourrez apprendre chaque annotation individuellement.

  • Annotation Zone / Rectangle

  • Flèche

  • Distance

  • Ellipse

  • Souligner

  • Lien

  • Indiquer

  • Polyligne

  • Remplacement

  • Rédaction des ressources

  • Barré

  • Champ de texte

  • Rédaction de texte

  • Souligner

  • Filigrane

Commençons par en ajouter quelques-uns dans un document PDF.

Ajouter une annotation de flèche au PDF en utilisant Java

Voici les étapes pour ajouter une annotation de flèche à un document PDF.

Annotation de flèche
  • Chargez le document PDF en utilisant la classe Annotator.
  • Initialiser l’annotation fléchée à l’aide de la classe ArrowAnnotation.
  • Définissez la position et la taille de la flèche à l’aide de la méthode setBox d’ArrowAnnotation.
  • Ajoutez l’annotation de flèche créée à l’objet Annotator.
  • Enregistrez le PDF annoté en fournissant le chemin à l’aide de la méthode save.

L’exemple de code suivant montre comment ajouter une annotation de flèche à un document PDF à l’aide de Java.

// Ajouter une annotation de flèche au PDF à l'aide de 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");

Insérer un rectangle ou une annotation de zone dans un PDF à l’aide de Java

Vous pouvez personnaliser n’importe quelle annotation tout en l’ajoutant au document. Voici les étapes pour ajouter un rectangle ou une annotation de zone à un document PDF avec un peu plus de personnalisations. Cela revient à ajouter une annotation Arrow mais utilise la classe AreaAnnotation à la place de ArrowAnnotation.

  • Chargez le document PDF à l’aide de la classe Annotator.
  • Initialiser l’annotation du rectangle à l’aide de la classe AreaAnnotation.
  • Définissez la position et la taille du rectangle à l’aide de la méthode setBox de AreaAnnotation.
  • Définissez d’autres propriétés telles que color, background, opacity, style, pen width ou même messages et time .
  • Ajoutez l’annotation rectangulaire créée à l’objet Annotator.
  • Enregistrez le PDF annoté en fournissant le chemin à l’aide de la méthode save.
Annotation de rectangle ou de zone

L’exemple de code suivant montre comment ajouter une annotation de rectangle/zone à un document PDF à l’aide de Java.

// Ajouter une annotation de zone ou une annotation de rectangle au PDF à l'aide de 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);
// ajouter au document
annotator.add(area);
annotator.save("path/annotated-with-rectangle.pdf");

Ajouter une annotation ovale ou ellipse au PDF à l’aide de Java

Voici les étapes pour ajouter une annotation ovale ou une annotation ellipse à un document PDF.

Ellipses ou annotation ovale
  • Chargez le document PDF en utilisant la classe Annotator.
  • Initialiser l’annotation d’ellipse à l’aide de la classe EllipseAnnotation.
  • Définissez la position et la taille de l’ellipse à l’aide de la méthode setBox d’EllipseAnnotation.
  • Ajoutez l’annotation d’ellipse créée à l’objet Annotator.
  • Enregistrez le PDF annoté en fournissant le chemin à l’aide de la méthode save.

L’exemple de code suivant montre comment ajouter une annotation ovale ou elliptique à un document PDF à l’aide de Java.

// Ajouter une annotation ovale ou ellipse dans un PDF à l'aide de Java
final Annotator annotator = new Annotator("document.pdf");
// Annotation ovale ou elliptique
EllipseAnnotation ellipse = new EllipseAnnotation();
ellipse.setBox(new Rectangle(275, 505, 300, 80));
// ajouter au document
annotator.add(area);
annotator.save("path/annotated-with-ellipse.pdf");

Insérer une annotation de distance dans un PDF à l’aide de Java

Annotation des distances

Vous pouvez également ajouter l’annotation de distance pour afficher la distance entre deux points. Voici les étapes pour ajouter une annotation de distance au document PDF.

  • Chargez le document PDF en utilisant la classe Annotator.
  • Initialiser l’annotation de distance à l’aide de la classe DistanceAnnotation.
  • Définissez la taille et la position de l’annotation à l’aide de la méthode setBox de DistanceAnnotation.
  • Ajoutez l’annotation de distance créée à l’objet Annotator.
  • Enregistrez le PDF annoté en fournissant le chemin à l’aide de la méthode save.

L’exemple de code suivant montre comment ajouter une annotation de distance à un document PDF à l’aide de Java.

// Annotation de distance à l'aide de Java
final Annotator annotator = new Annotator("document.pdf");
// Annotation des distances
DistanceAnnotation distance = new DistanceAnnotation();
distance.setBox(new Rectangle(775, 235, 0, 150));
// ajouter au document
annotator.add(area);
annotator.save("path/annotated-with-distance.pdf");

Code complet

Pour résumer, voici le code Java avec la sortie montrant toutes les annotations et messages ajoutés avec des réponses utilisant le code Java mentionné.

Ajout d'annotations au PDF

Le code suivant ci-dessous ajoute une flèche, un rectangle, une ellipse, des annotations de distance, des messages et des réponses à un fichier PDF.

// Ajouter plusieurs annotations au PDF à l'aide de Java
// Ajout d'annotations de flèche, de zone, d'ovale (ellipse) et de distance au PDF avec des messages et des réponses à l'aide de Java
final Annotator annotator = new Annotator(Constants.INPUT);
// Définition des réponses
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);
// Annotation de flèche ================================
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));
// Annotation de zone ==================================
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));
// Annotation ovale ou elliptique ========================
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));
// Annotation des distances ==============================
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));
// Ajout d'annotations =================================
annotator.add(arrow);
annotator.add(area);
annotator.add(ellipse);
annotator.add(distance);
// Enregistrement du PDF annoté ===============================
annotator.save(outputPath);
annotator.dispose();

Supprimer les annotations du PDF en Java

Les étapes suivantes montrent comment supprimer toutes les annotations des fichiers PDF en Java.

  • Chargez le document PDF en utilisant la classe Annotator.
  • Initialiser la sauvegarde des options à l’aide de la classe SaveOptions.
  • Définissez les types d’annotations sur Aucun.
  • Enregistrez le fichier PDF en supprimant toutes les annotations, en fournissant le chemin à l’aide de la méthode save.

Le code Java suivant supprime les annotations d’un fichier PDF.

// Supprimez toutes les annotations du document PDF à l'aide de Java
final Annotator annotator = new Annotator("document.pdf");
SaveOptions saveOptions = new SaveOptions();
saveOptions.setAnnotationTypes(AnnotationType.None);
// Enregistrez le PDF sans plus d'annotations.
annotator.save("path/annotations-removed.pdf", saveOptions);
annotator.dispose();

Conclusion

En bref, vous avez appris à ajouter des annotations au PDF dans les applications Java. De plus, vous avez vu comment supprimer toutes les annotations de n’importe quel fichier PDF. Maintenant, vous devriez être sûr de créer votre propre application Java d’annotation de documents. Il peut prendre en charge différents types d’annotations à l’aide de GroupDocs.Annotation for Java.

Pour plus de détails, d’options et d’exemples, vous pouvez visiter la documentation et le référentiel GitHub. Pour toute autre question, contactez le support sur le forum.

Voir également