iText - Annotation de balisage

Dans ce chapitre, nous verrons comment ajouter une annotation de balisage de texte à un document PDF à l'aide de la bibliothèque iText.

Création d'une annotation de balisage dans un PDF

Vous pouvez créer un document PDF vide en instanciant le Documentclasse. Lors de l'instanciation de cette classe, vous devez passer unPdfDocumentobjet en tant que paramètre de son constructeur. Pour utiliser l'annotation de texte dans votre document PDF, vous devez créer un objet dePdfTextAnnotation classe et ajoutez ceci à la PdfPage.

Voici les étapes pour utiliser l'annotation de texte dans le document PDF.

Étape 1: Création d'un objet PdfWriter

le PdfWriterLa classe représente le DocWriter pour un PDF. Cette classe appartient au packagecom.itextpdf.kernel.pdf. Le constructeur de cette classe accepte une chaîne, représentant le chemin du fichier dans lequel le PDF doit être créé.

Instanciez la classe PdfWriter en passant une valeur de chaîne (représentant le chemin où vous devez créer un PDF) à son constructeur, comme indiqué ci-dessous.

// Creating a PdfWriter 
String dest = "C:/itextExamples/markupAnnotation.pdf"; 
PdfWriter writer = new PdfWriter(dest);

Lorsqu'un objet de ce type est passé à un PdfDocument (classe), chaque élément ajouté à ce document sera écrit dans le fichier spécifié.

Étape 2: Création d'un objet PdfDocument

le PdfDocumentclass est la classe qui représente le document PDF dans iText. Cette classe appartient au packagecom.itextpdf.kernel.pdf. Pour instancier cette classe (en mode écriture), vous devez passer un objet de la classePdfWriter à son constructeur.

Instanciez la classe PdfDocument en passant l'objet PdfWriter à son constructeur, comme indiqué ci-dessous.

// Creating a PdfDocument  
PdfDocument pdfDoc = new PdfDocument(writer);

Une fois qu'un objet PdfDocument est créé, vous pouvez ajouter divers éléments tels que la page, la police, la pièce jointe et le gestionnaire d'événements à l'aide des méthodes respectives fournies par sa classe.

Étape 3: Création de l'objet Document

le Document classe du package com.itextpdf.layoutest l'élément racine lors de la création d'un PDF autonome. L'un des constructeurs de cette classe accepte un objet de la classePdfDocument.

Instancier le Document class en passant l'objet de la classe PdfDocument créé dans les étapes précédentes, comme indiqué ci-dessous.

// Creating a Document   
Document document = new Document(pdfDoc);

Étape 4: Création d'un objet PdfAnnotation

le PdfAnnotation classe du package com.itextpdf.kernel.pdf.annot représente la superclasse de toutes les annotations.

Parmi ses classes dérivées, PdfTextMarkupAnnotationclass représente l'annotation de balisage de texte. Créez un objet de cette classe comme indiqué ci-dessous.

// Creating a PdfTextMarkupAnnotation object 
Rectangle rect = new Rectangle(105, 790, 64, 10); 
float[] floatArray = new float[]{169, 790, 105, 790, 169, 800, 105, 800};
PdfAnnotation annotation = PdfTextMarkupAnnotation.createHighLight(rect,floatArray);

Étape 5: Définition de la couleur de l'annotation

Définissez la couleur de l'annotation à l'aide du setColor() méthode de la PdfAnnotationclasse. À cette méthode, passez l'objet couleur représentant lecolor de l'annotation en tant que paramètre.

// Setting color to the annotation 
annotation.setColor(Color.YELLOW);

Étape 6: Définition du titre et du contenu de l'annotation

Définissez le titre et le contenu de l'annotation à l'aide du setTitle() et setContents() méthodes de la PdfAnnotation classe respectivement.

// Setting title to the annotation 
annotation.setTitle(new PdfString("Hello!"));        

// Setting contents to the annotation 
annotation.setContents(new PdfString("Hi welcome to Tutorialspoint"));

Étape 7: Ajout de l'annotation à une page

Créer un nouveau PdfPage classe en utilisant le addNewPage() méthode de la PdfDocument classe et ajoutez l'annotation créée ci-dessus en utilisant le addAnnotation() méthode de la classe PdfPage, comme indiqué ci-dessous.

// Creating a new Pdfpage 
PdfPage pdfPage = pdfDoc.addNewPage();        

// Adding annotation to a page in a PDF 
pdfPage.addAnnotation(annotation);

Étape 8: fermeture du document

Fermez le document à l'aide du close() méthode de la Document classe, comme indiqué ci-dessous.

// Closing the document 
document.close();

Exemple

Le programme Java suivant montre comment ajouter une annotation de balisage de texte à un document PDF à l'aide de la bibliothèque iText. Il crée un document PDF avec le nommarkupAnnotation.pdf, y ajoute une annotation de balisage de texte et l'enregistre dans le chemin C:/itextExamples/

Enregistrez ce code dans un fichier avec le nom MarkupAnnotation.java.

import com.itextpdf.kernel.color.Color; 
import com.itextpdf.kernel.geom.Rectangle; 
import com.itextpdf.kernel.pdf.PdfDocument; 
import com.itextpdf.kernel.pdf.PdfPage; 
import com.itextpdf.kernel.pdf.PdfString; 
import com.itextpdf.kernel.pdf.PdfWriter; 
import com.itextpdf.kernel.pdf.annot.PdfAnnotation; 
import com.itextpdf.kernel.pdf.annot.PdfTextMarkupAnnotation;
import com.itextpdf.layout.Document;  

public class MarkupAnnotation {    
   public static void main(String args[]) throws Exception {   
      // Creating a PdfDocument object       
      String file = "C:/itextExamples/markupAnnotation.pdf";        
      PdfDocument pdfDoc = new PdfDocument(new PdfWriter(file));                   
   
      // Creating a Document object       
      Document doc = new Document(pdfDoc);                      
      
      // Creating a PdfTextMarkupAnnotation object       
      Rectangle rect = new Rectangle(105, 790, 64, 10);       
      float[] floatArray = new float[]{169, 790, 105, 790, 169, 800, 105, 800};
      PdfAnnotation annotation = 
         PdfTextMarkupAnnotation.createHighLight(rect,floatArray);
      
      // Setting color to the annotation       
      annotation.setColor(Color.YELLOW);              
      
      // Setting title to the annotation       
      annotation.setTitle(new PdfString("Hello!"));
      
      // Setting contents to the annotation       
      annotation.setContents(new PdfString("Hi welcome to Tutorialspoint"));
      
      // Creating a new Pdfpage
      PdfPage pdfPage = pdfDoc.addNewPage();
      
      // Adding annotation to a page in a PDF       
      pdfPage.addAnnotation(annotation);
      
      // Closing the document
      doc.close();  
      
      System.out.println("Annotation added successfully");       
   }     
}

Compilez et exécutez le fichier Java enregistré à partir de l'invite de commande à l'aide des commandes suivantes -

javac MarkupAnnotation.java 
java MarkupAnnotation

Lors de l'exécution, le programme ci-dessus crée un document PDF affichant le message suivant.

Annotation added successfully

Si vous vérifiez le chemin spécifié, vous pouvez trouver le document PDF créé comme indiqué ci-dessous.