iText - Réglage de la position de l'image

Dans ce chapitre, nous verrons comment définir la position d'une image dans un document PDF à l'aide de la bibliothèque iText.

Définition de la position de l'image

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 ajouter une image au pdf, créez et un objet de l'image qui doit être ajouté et ajoutez-le en utilisant le add() méthode de la Documentclasse. Vous pouvez insérer l'image à la position souhaitée sur le document en utilisant la méthodesetFixedPosition() du Image classe.

Voici les étapes pour définir la position d'une image 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 où 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/positionOfImage.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 écriture), vous devez passer un objet de la classePdfWriter à son constructeur.

Instanciez la classe PdfDocument en passant l'objet PdfWriter créé ci-dessus à son constructeur, comme illustré 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 classe PdfDocument.

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 Image

Pour créer l'objet image, créez tout d'abord un ImageData objet utilisant le create() méthode de la ImageDataFactoryclasse. En tant que paramètre de cette méthode, transmettez un paramètre de chaîne représentant le chemin de l'image, comme indiqué ci-dessous.

// Creating an ImageData object 
String imageFile = "C:/itextExamples/javafxLogo.jpg"; 
ImageData data = ImageDataFactory.create(imageFile);

Maintenant, instanciez le Image classe de la com.itextpdf.layout.elementpaquet. Lors de l'instanciation, passez leImageData objet en tant que paramètre de son constructeur, comme indiqué ci-dessous.

// Creating an Image object 
Image img = new Image(data);

Étape 5: Réglage de la position de l'image

Vous pouvez définir la position de l'image dans un document PDF à l'aide du setFixedPosition()méthode de l'image. Définissez la position de l'image sur les coordonnées (100, 250) sur le document à l'aide de cette méthode, comme indiqué ci-dessous.

// Setting the position of the image to the center of the page 
image.setFixedPosition(100, 250);

Étape 6: Ajout d'une image au document

Maintenant, ajoutez l'objet image, créé à l'étape précédente, en utilisant le add() méthode de la Document classe, comme indiqué ci-dessous.

// Adding image to the document 
document.add(img);

Étape 7: 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 définir une image à une position souhaitée sur un document PDF à l'aide de la bibliothèque iText. Il crée un document PDF avec le nompositionOfImage.pdf, y ajoute une image, la place plus près du centre de la page et l'enregistre dans le chemin C:/itextExamples/

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

import com.itextpdf.io.image.ImageData; 
import com.itextpdf.io.image.ImageDataFactory; 

import com.itextpdf.kernel.pdf.PdfDocument; 
import com.itextpdf.kernel.pdf.PdfWriter; 

import com.itextpdf.layout.Document; 
import com.itextpdf.layout.element.Image;  

public class SettingPosition {      
   public static void main(String args[]) throws Exception {              
      // Creating a PdfWriter       
      String dest = "C:/EXAMPLES/itextExamples/3images/positionOfImage.pdf";       
      PdfWriter writer = new PdfWriter(dest);               
      
      // Creating a PdfDocument       
      PdfDocument pdfDoc = new PdfDocument(writer);              
      
      // Creating a Document        
      Document document = new Document(pdfDoc);              
      
      // Creating an ImageData object       
      String imFile = "C:/EXAMPLES/itextExamples/3images/logo.jpg";       
      ImageData data = ImageDataFactory.create(imFile);             

      // Creating an Image object        
      Image image = new Image(data);                
      
      // Setting the position of the image to the center of the page       
      image.setFixedPosition(100, 250);                  
      
      // Adding image to the document       
      document.add(image);              
      
      // Closing the document       
      document.close();
      
      System.out.println("Image added");    
   } 
}

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

javac SettingPosition.java 
java SettingPosition

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

Image added

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