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.