iText - Formatage du contenu des cellules

Dans ce chapitre, nous verrons comment créer un document PDF et ajouter un tableau et formater le contenu d'une cellule dans le tableau à l'aide de la bibliothèque iText.

Formatage des cellules dans un tableau

Vous pouvez créer un PDF vide Documenten instanciant la classe Document. Lors de l'instanciation de cette classe, vous devez passer unPdfDocumentobjet en tant que paramètre, à son constructeur. Ensuite, pour ajouter un tableau au document, vous devez instancier leTable classe et ajoutez cet objet au document en utilisant le add()méthode. Vous pouvez mettre en forme le contenu d'une cellule dans un tableau à l'aide des méthodes duCell classe.

Voici les étapes pour mettre en forme le contenu d'une cellule dans un tableau.

É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/addingBackground.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 PDFDocument 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.

Instancier le PdfDocument classe en passant le créé ci-dessus PdfWriter object à son constructeur, comme indiqué ci-dessous.

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

Une fois par PdfDocument objet est créé, vous pouvez ajouter divers éléments tels que la page, la police, la pièce jointe et le gestionnaire d'événements en utilisant les 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 Table

le Tableclass représente une grille bidimensionnelle remplie de cellules, triées en lignes et en colonnes. Il appartient au packagecom.itextpdf.layout.element.

Instanciez la classe Table comme indiqué ci-dessous.

// Creating a table 
float [] pointColumnWidths = {200F, 200F}; 
Table table = new Table(pointColumnWidths);

Étape 5: Création de cellules

Créer un cell objet en instanciant le Cell classe du package com.itextpdf.layout.element. Ajoutez le contenu de la cellule à l'aide duadd() méthode de la Cell classe, comme indiqué ci-dessous.

// Adding cell 1 to the table 
Cell cell1 = new Cell();     // Creating a cell 
cell1.add("Name");           // Adding content to the cell       

// Adding cell 2 to the table 
Cell cell2 = new Cell();     // Creating a cell 
cell2.add("Raju");           // Adding content to the cell

Étape 6: Ajout d'un arrière-plan à la cellule

Une fois que vous avez créé la cellule et ajouté du contenu, vous pouvez mettre en forme la cellule. Par exemple, vous pouvez définir son arrière-plan, aligner le texte à l'intérieur de la cellule, changer la couleur du texte, etc., en utilisant différentes méthodes de la classe de cellule telles quesetBackgroundColor(), setBorder(), setTextAlignment().

Vous pouvez définir la couleur d'arrière-plan, la bordure et l'alignement du texte sur la cellule créée à l'étape précédente, comme indiqué ci-dessous.

c1.setBackgroundColor(Color.DARK_GRAY);    // Setting background color to cell1 
c1.setBorder(Border.NO_BORDER);            // Setting border to cell1 
c1.setTextAlignment(TextAlignment.CENTER); // Setting text alignment to cell1

Étape 7: Ajout d'une cellule au tableau

Enfin, pour ajouter cette cellule au tableau, appelez le addCell() méthode de la Table classe et passer le cell objet comme paramètre de cette méthode, comme indiqué ci-dessous.

table.addCell(c1);

Étape 8: Ajout d'un tableau au document

Ajouter le table objet créé à l'étape précédente à l'aide du add() méthode de la Document classe comme indiqué ci-dessous.

// Adding list to the document 
document.add(table);

É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 formater le contenu d'une cellule dans un tableau à l'aide de la bibliothèque iText. Il crée un document PDF avec le nomaddingBackground.pdf, y ajoute un tableau, formate le contenu de ses cellules et l'enregistre dans le chemin C:/itextExamples/

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

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

import com.itextpdf.layout.Document;
import com.itextpdf.layout.border.Border; 
import com.itextpdf.layout.element.Cell; 
import com.itextpdf.layout.element.Table; 
import com.itextpdf.layout.property.TextAlignment;  

public class BackgroundToTable {      
   public static void main(String args[]) throws Exception {        
      // Creating a PdfWriter object   
      String dest = "C:/itextExamples/addingBackground.pdf";   
      PdfWriter writer = new PdfWriter(dest);                  
      
      // Creating a PdfDocument object       
      PdfDocument pdfDoc = new PdfDocument(writer);                   
      
      // Creating a Document object      
      Document doc = new Document(pdfDoc); 
      
      // Creating a table       
      float [] pointColumnWidths = {200F, 200F};       
      Table table = new Table(pointColumnWidths);
      
      // Populating row 1 and adding it to the table               
      Cell c1 = new Cell();                        // Creating cell 1 
      c1.add("Name");                              // Adding name to cell 1   
      c1.setBackgroundColor(Color.DARK_GRAY);      // Setting background color
      c1.setBorder(Border.NO_BORDER);              // Setting border
      c1.setTextAlignment(TextAlignment.CENTER);   // Setting text alignment      
      table.addCell(c1);                           // Adding cell 1 to the table 
      
      Cell c2 = new 
      Cell();                               
      c2.add("Raju");       
      c2.setBackgroundColor(Color.GRAY);       
      c2.setBorder(Border.NO_BORDER);       
      c2.setTextAlignment(TextAlignment.CENTER);      
      table.addCell(c2);      
      
      // Populating row 2 and adding it to the table               
      Cell c3 = new Cell();       
      c3.add("Id");       
      c3.setBackgroundColor(Color.WHITE);       
      c3.setBorder(Border.NO_BORDER);       
      c3.setTextAlignment(TextAlignment.CENTER);      
      table.addCell(c3);                          
      
      Cell c4 = new Cell();       
      c4.add("001");       
      c4.setBackgroundColor(Color.WHITE);       
      c4.setBorder(Border.NO_BORDER);       
      c4.setTextAlignment(TextAlignment.CENTER);      
      table.addCell(c4);                          
      
      // Populating row 3 and adding it to the table        
      Cell c5 = new Cell();       
      c5.add("Designation");       
      c5.setBackgroundColor(Color.DARK_GRAY);       
      c5.setBorder(Border.NO_BORDER);       
      c5.setTextAlignment(TextAlignment.CENTER);      
      table.addCell(c5);                 
      
      Cell c6 = new Cell(); 
      c6.add("Programmer");       
      c6.setBackgroundColor(Color.GRAY);       
      c6.setBorder(Border.NO_BORDER);       
      c6.setTextAlignment(TextAlignment.CENTER);       
      table.addCell(c6);                              
      
      // Adding Table to document        
      doc.add(table);                  
      
      // Closing the document       
      doc.close();  
      
      System.out.println("Background added successfully..");     
   } 
}

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

javac BackgroundToTable.java 
java BackgroundToTable

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

Background added successfully..

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