iText - Annotation de lien

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

Création d'une annotation de lien 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 unPdfDocument objet en tant que paramètre de son constructeur.

Pour utiliser l'annotation de texte dans votre document PDF, vous devez créer un objet de la classe PdfTextAnnotation et l'ajouter à la PdfPage.

Voici les étapes pour utiliser l'annotation de texte dans un 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éé.

Instancier le PdfWriter class 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/linkAnnotation.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 le PdfWriter object à 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 classe en passant l'objet de la classe PdfDocument créée aux étapes précédentes, comme illustré 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, PdfLinkAnnotationclass représente l'annotation du lien. Créez un objet de cette classe, comme indiqué ci-dessous.

// Creating a PdfLinkAnnotation object 
Rectangle rect = new Rectangle(0, 0); 
PdfLinkAnnotation annotation = new PdfLinkAnnotation(rect);

Étape 5: Définition de l'action de l'annotation

Définissez une action sur l'annotation à l'aide du setAction() méthode de la PdfLinkAnnotation classe, comme indiqué ci-dessous.

// Setting action of the annotation 
PdfAction action = PdfAction.createURI("http: // www.tutorialspoint.com/"); 
annotation.setAction(action);

Étape 6: création d'un lien

Créez un lien en instanciant le Link classe du package com.itextpdf.layout.element, comme indiqué ci-dessous.

// Creating a link 
Link link = new Link("Click here", annotation);

Étape 7: Ajout de l'annotation de lien à un paragraphe

Créez un nouveau paragraphe en instanciant le Paragraph classe et ajoutez le lien créé à l'étape précédente à l'aide du add() méthode de cette classe, comme indiqué ci-dessous.

// Creating a paragraph 
Paragraph paragraph = new Paragraph("Hi welcome to Tutorialspoint ");        

// Adding link to paragraph 
paragraph.add(link.setUnderline());

Étape 8: Ajout d'un paragraphe au document

Ajoutez le paragraphe au document en utilisant le add() méthode de la Document classe, comme indiqué ci-dessous.

// Adding paragraph to document 
document.add(paragraph);

Étape 9: 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 lien à un document PDF à l'aide de la bibliothèque iText.

Il crée un document PDF avec le nom linkAnnotation.pdf, y ajoute une annotation de lien et l'enregistre dans le chemin C:/itextExamples/

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

import com.itextpdf.kernel.geom.Rectangle; 
import com.itextpdf.kernel.pdf.PdfDocument; 
import com.itextpdf.kernel.pdf.PdfWriter; 
import com.itextpdf.kernel.pdf.action.PdfAction; 
import com.itextpdf.kernel.pdf.annot.PdfLinkAnnotation; 

import com.itextpdf.layout.Document; 
import com.itextpdf.layout.element.Link; 
import com.itextpdf.layout.element.Paragraph;  

public class LinkAnnotation {      
   public static void main(String args[]) throws Exception {             
      // Creating a PdfWriter       
      String dest = "C:/itextExamples/linkAnnotation.pdf";       
      
      PdfWriter writer = new 
      PdfWriter(dest);               
      
      // Creating a PdfDocument       
      PdfDocument pdf = new PdfDocument(writer);               
      
      // Creating a Document
      Document document = new Document(pdf);              
      
      // Creating a PdfLinkAnnotation object       
      Rectangle rect = new Rectangle(0, 0);       
      PdfLinkAnnotation annotation = new PdfLinkAnnotation(rect);              
      
      // Setting action of the annotation       
      PdfAction action = PdfAction.createURI("http:// www.tutorialspoint.com/");       
      annotation.setAction(action);             
      
      // Creating a link       
      Link link = new Link("Click here", annotation);              
      
      // Creating a paragraph       
      Paragraph paragraph = new Paragraph("Hi welcome to Tutorialspoint ");              
      
      // Adding link to paragraph       
      paragraph.add(link.setUnderline());              
      
      // Adding paragraph to document       
      document.add(paragraph);             

      // Closing the document       
      document.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 LinkAnnotation.java 
java LinkAnnotation

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.