Annotation PDF

Le contenu d’une page PDF est difficile à modifier, mais la spécification PDF définit un ensemble complet d’objets qui peuvent être ajoutés aux pages PDF sans modifier le contenu de la page. Ces objets sont appelés annotations et leur fonction va du balisage du contenu de la page à l’implémentation de fonctionnalités interactives telles que des formulaires.

La plupart des visionneuses PDF permettent la création et la modification de divers types d’annotations, par exemple des surlignements de texte, des notes, des lignes ou des formes, et quels que soient les types d’annotations créés, les visionneuses PDF conformes à la spécification PDF doivent également prendre en charge le rendu de tous les types d’annotations. Cependant, lorsqu’il s’agit d’un grand ensemble de documents, le processus manuel d’ajout d’annotations devient fastidieux et, par conséquent, une API de programmation est une solution viable. Nous allons également discuter de l’utilisation de Aspose.PDF Cloud SDK for Java pour ajouter des annotations aux documents PDF.

Installation du SDK

Aspose.PDF Cloud SDK for Java est une API de programmation qui permet aux programmeurs Java de créer, de manipuler et de transformer des documents PDF existants en d’autres formats de documents pris en charge. Le Cloud SDK est disponible en téléchargement sur Maven et GitHub. Ajoutez maintenant les détails suivants dans votre fichier pom.xml pour télécharger et utiliser Aspose.Pdf.jar dans votre projet de build Maven.

<repositories>
 <repository>
        <id>aspose-cloud</id>
        <name>artifact.aspose-cloud-releases</name>
        <url>https://artifact.aspose.cloud/repo</url>
    </repository>   
</repositories>
<dependencies>
 <dependency>
        <groupId>com.aspose</groupId>
        <artifactId>aspose-pdf-cloud</artifactId>
        <version>21.1.0</version>
        <scope>compile</scope>
    </dependency>
 </dependencies>

Pour plus d’informations, veuillez consulter Comment installer les SDK Aspose.Cloud.

De plus, veuillez noter que pour garantir la confidentialité des utilisateurs et l’intégrité des données, toutes nos API ne sont accessibles qu’aux personnes autorisées. Par conséquent, vous devez d’abord visiter le tableau de bord Aspose.Cloud et si vous avez un compte GitHub ou Google, inscrivez-vous simplement. Sinon, cliquez sur le bouton Créer un nouveau compte et fournissez les informations requises. Connectez-vous maintenant au tableau de bord à l’aide des informations d’identification et développez la section Applications du tableau de bord et faites défiler vers le bas jusqu’à la section Informations d’identification du client pour voir les détails de l’ID client et du secret client.

Texte barré à l’aide de Java

Parfois, nous avons besoin de marquer certains contenus du document comme obsolètes sans les supprimer du document. Le texte barré (aussi appelé texte barré) est représenté par des mots avec une ligne horizontale au centre. Cela implique que le texte est erroné ou obsolète et a été récemment supprimé ou marqué comme tel. Nous pouvons définir les paramètres des annotations barrées à l’aide de la propriété strikethroughSettings. La propriété strikethroughSettings est utilisée pour définir les propriétés color, opacity, author, subject, modifiedDate et isLocked des annotations barrées.

// Obtenez ClientID et ClientSecret depuis https://dashboard.aspose.cloud/
String clientId = "29ac1517-753f-4303-b755-7185e35cf939";
String clientSecret = "c537caf71eafc8a75a5ee7813b703276";
				
// instance createPdfApi
PdfApi pdfApi = new PdfApi(clientSecret,clientId);
				
// document PDF d'entrée
String sourcePDF = "PdfWithTable.pdf";	        
			        
int pageNumber = 1;
// créer une région rectangulaire pour l'annotation  
Rectangle rect = new Rectangle()
    .LLX(200.)
    .LLY(380.)
    .URX(250.)
    .URY(375.);

List<AnnotationFlags> flags = new ArrayList<>();
flags.add(AnnotationFlags.DEFAULT);

List<Point> points = new ArrayList<>();
points.add(new Point().X(132.).Y(380.)); // Top-Left edge of the Strike Through line
points.add(new Point().X(95.).Y(10.));	// Top-Right edge of the strike through line
points.add(new Point().X(130.).Y(25.));
points.add(new Point().X(130.).Y(10.));

StrikeOutAnnotation annotation = new StrikeOutAnnotation();
annotation.setName("Name");
annotation.setRect(rect);
annotation.setFlags(flags);
annotation.setHorizontalAlignment(HorizontalAlignment.CENTER);
annotation.setRichText("Rich Text");
annotation.setSubject("Subj");
annotation.setZindex(1);
annotation.setTitle("Title");
annotation.setQuadPoints(points);
annotation.setModified("05/22/2021 00:00:00.000 AM");
			        

List<StrikeOutAnnotation> annotations = new ArrayList<>();
annotations.add(annotation);

AsposeResponse response = pdfApi.postPageStrikeOutAnnotations(sourcePDF, pageNumber, annotations, null, null);
assertEquals(200, (int)response.getCode());

Ajouter une annotation de surbrillance

La mise en surbrillance du contenu d’un PDF est essentielle car elle permet d’attirer l’attention sur les informations importantes du document. La mise en surbrillance est efficace car elle demande d’abord au lecteur de sélectionner les parties importantes, puis lui offre un moyen efficace de revoir ces informations plus tard. Notre API Cloud permet de mettre en surbrillance le contenu des documents PDF. Vous trouverez ci-dessous les étapes à suivre pour ajouter des annotations de surbrillance dans un fichier PDF.

  • Tout d’abord, créez une instance de PdfApi tout en fournissant les détails ClientSecret et ClientId.
  • Nous créons une instance de fichier pour charger un fichier PDF à partir du système local, puis appelons la méthode uploadFile(…) de la classe PdfApi pour télécharger le document vers le stockage cloud.
  • Créez maintenant une instance de la classe Rectangle pour spécifier la région rectangulaire où l’annotation peut être ajoutée.
  • Créez ensuite une ArrayList de type Point pour contenir les informations concernant les points sur lesquels dessiner l’annotation HighlightAnnotation.
  • Créez un objet de classe HighlightAnnotation et définissez le nom, la région rectangulaire, le sujet, le titre, les QuadPoints et la date de modification de l’annotation.
  • L’étape suivante consiste à créer une liste de type HighlightAnnotation et à ajouter l’objet HighlightAnnotation créé ci-dessus à cette liste.
  • Enfin, appelez la méthode postPageHighlightAnnotations(…) de la classe PdfApi et transmettez le PDF source, le numéro de page et la liste des annotations comme arguments.
Aperçu de l'annotation en surbrillance

Image 1 : Mettre en surbrillance l’annotation dans le fichier PDF.

Vous pouvez télécharger les fichiers d’exemple utilisés dans l’exemple ci-dessus à partir des liens suivants

Comment ajouter une annotation de ligne

De la même manière que pour ajouter des annotations barrées et surlignées, l’API vous permet également d’ajouter des annotations de ligne dans les documents PDF. Nous avons une classe nommée LineAnnotation pour répondre à cette exigence. Vous trouverez ci-dessous des détails supplémentaires sur la manière de répondre à cette exigence.

  • Tout d’abord, créez une instance de PdfApi tout en fournissant les détails ClientSecret et ClientId.
  • En option, nous créons une instance de fichier pour charger un fichier PDF à partir du système local, puis nous appelons la méthode uploadFile(…) de la classe PdfApi pour télécharger le document vers le stockage cloud. Si le fichier est déjà disponible sur le stockage cloud, nous pouvons l’utiliser.
  • Le reste des propriétés d’initialisation de l’objet sont les mêmes que celles mentionnées ci-dessus pour HighlithAnnotation, sauf que nous devons créer un objet de classe LineAnnotation et définir le point de départ et de fin d’une ligne à l’aide des méthodes setStarting(…) et setEnding(…).
// Obtenez ClientID et ClientSecret depuis https://dashboard.aspose.cloud/
String clientId = "7042694c-5251-4aba-83c9-e81e7518724f";
String clientSecret = "db246d4742e8cd22e7266c9391992689";
				
// instance createPdfApi
PdfApi pdfApi = new PdfApi(clientSecret,clientId);
				
// document PDF d'entrée
String sourcePDF = "PdfWithTable.pdf";	        
			    
// Charger le fichier à partir du système local
File file = new File("/Users/nayyershahbaz/Downloads/" + sourcePDF);

// télécharger le fichier sur le stockage cloud
FilesUploadResult uploadResponse = pdfApi.uploadFile(sourcePDF, file, null);

// numéro de page où l'annotation sera ajoutée				
int pageNumber = 1;

// créer une région rectangulaire pour l'annotation  
Rectangle rect = new Rectangle()
    .LLX(100.)
    .LLY(500.)
    .URX(400.)
    .URY(510.);

// créer un objet Liste de type AnnotationFlags
List<AnnotationFlags> flags = new ArrayList<>();
flags.add(AnnotationFlags.DEFAULT);

// Créer un objet Annotations de lignes
LineAnnotation annotation = new LineAnnotation();

annotation.setName("Name");
annotation.setRect(rect);
annotation.setFlags(flags);
annotation.setRichText("Rich Text");
annotation.setSubject("Subj");
annotation.setTitle("Title");

// définir le point de départ de la ligne
annotation.setStarting(new Point().X(100.).Y(100.));
// définir le point final de la ligne
annotation.setEnding(new Point().X(20.).Y(680.));

// créer une instance de couleur pour staleblue
Color color = new Color();
color.setA(0x00);
color.setR(0x6A);
color.setG(0x5A);
color.setB(0xCD);
// définir la couleur de l'annotation
annotation.interiorColor(color);

// définir la date de modification de l'annotation			      
annotation.setModified("05/22/2021 00:00:00.000 AM");
			        
// Créer une instance de liste d'annotations de lignes
List<LineAnnotation> annotations = new ArrayList<>();
// ajouter l'objet LineAnnotation à la liste des annotations de ligne
annotations.add(annotation);

// appeler la méthode API pour ajouter une annotation de ligne au fichier PDF
AsposeResponse response = pdfApi.postPageLineAnnotations(sourcePDF, pageNumber, annotations, null, null);

Ajout d’une annotation circulaire dans un PDF

Les annotations circulaires sont également couramment utilisées dans les documents PDF et l’API prend très bien en charge ce type d’annotation. Pour ajouter des annotations circulaires, essayez d’utiliser la classe CircleAnnotation. Le code spécifié ci-dessous peut être utilisé pour répondre à cette exigence.

// Obtenez ClientID et ClientSecret depuis https://dashboard.aspose.cloud/
String clientId = "7042694c-5251-4aba-83c9-e81e7518724f";
String clientSecret = "db246d4742e8cd22e7266c9391992689";
				
// instance createPdfApi
PdfApi pdfApi = new PdfApi(clientSecret,clientId);
				
// document PDF d'entrée
String sourcePDF = "PdfWithTable.pdf";	        
			    
// Charger le fichier à partir du système local
File file = new File("/Users/nayyershahbaz/Downloads/" + sourcePDF);

// télécharger le fichier sur le stockage cloud
FilesUploadResult uploadResponse = pdfApi.uploadFile(sourcePDF, file, null);
// numéro de page où l'annotation sera ajoutée				
int pageNumber = 1;

// créer une région rectangulaire pour l'annotation  
Rectangle rect = new Rectangle()
    .LLX(100.)
    .LLY(700.)
    .URX(300.)
    .URY(500.);

// créer un objet Liste de type AnnotationFlags
List<AnnotationFlags> flags = new ArrayList<>();
flags.add(AnnotationFlags.DEFAULT);

// Créer un objet Annotations de surbrillance
CircleAnnotation annotation = new CircleAnnotation();
annotation.setName("Name");
annotation.setRect(rect);
annotation.setFlags(flags);
annotation.setRichText("Rich Text");
annotation.setSubject("Subj");
annotation.setTitle("Title");

// créer une instance de couleur pour staleblue
Color color = new Color();
color.setR(0xC7);
color.setG(0xE2);
color.setB(0x6f);
// définir la couleur de l'annotation
annotation.interiorColor(color);

// définir la date de modification de l'annotation			      
annotation.setModified("05/22/2021 00:00:00.000 AM");
			        
// Créer une instance de liste d'annotations en surbrillance
List<CircleAnnotation> annotations = new ArrayList<>();

// ajouter l'objet CircleAnnotation à la liste des annotations de cercle
annotations.add(annotation);

// appeler la méthode API pour ajouter une annotation circulaire au fichier PDF
AsposeResponse response = pdfApi.postPageCircleAnnotations(sourcePDF, pageNumber, annotations, null, null);
Annotation circulaire en PDF

Image 2 : Annotation circulaire dans le fichier PDF.

Le document PDF d’entrée et le PDF résultant, comme indiqué ci-dessus, peuvent être téléchargés à partir des liens suivants :

Astuce rapide

Utilisez notre Application d’annotation PDF gratuite en ligne pour supprimer toutes les annotations de votre PDF en un clic.

Conclusion

Dans ce blog, nous avons abordé les différents types d’annotations actuellement pris en charge par Aspose.PDF Cloud SDK pour Java. Outre les annotations, l’API prend en charge une multitude d’autres fonctionnalités intéressantes liées au format PDF. Pour plus d’informations, nous vous recommandons d’explorer davantage le Guide du développeur.

Sachez que nous nous efforçons toujours de servir nos clients de la meilleure façon possible et que nous tenons compte de leurs commentaires et suggestions. Par conséquent, si vous rencontrez un problème lors de l’utilisation de l’API ou si vous avez des questions à ce sujet, n’hésitez pas à nous contacter via notre Forum d’assistance gratuit.

Articles connexes

Nous vous recommandons vivement de visiter les liens suivants pour en savoir plus sur :