iText - Formatieren von Zelleninhalten

In diesem Kapitel erfahren Sie, wie Sie ein PDF-Dokument erstellen, eine Tabelle hinzufügen und den Inhalt einer Zelle in der Tabelle mithilfe der iText-Bibliothek formatieren.

Formatieren der Zellen in einer Tabelle

Sie können ein leeres PDF erstellen Documentdurch Instanziieren der Document-Klasse. Während Sie diese Klasse instanziieren, müssen Sie a bestehenPdfDocumentObjekt als Parameter an seinen Konstruktor. Um dem Dokument eine Tabelle hinzuzufügen, müssen Sie die instanziierenTable Klasse und fügen Sie dieses Objekt dem Dokument mit der add()Methode. Sie können den Inhalt einer Zelle in einer Tabelle mit den Methoden von formatierenCell Klasse.

Im Folgenden finden Sie die Schritte zum Formatieren des Inhalts einer Zelle in einer Tabelle.

Schritt 1: Erstellen eines PdfWriter-Objekts

Das PdfWriterKlasse repräsentiert den DocWriter für ein PDF. Diese Klasse gehört zum Paketcom.itextpdf.kernel.pdf. Der Konstruktor dieser Klasse akzeptiert eine Zeichenfolge, die den Pfad der Datei darstellt, in der die PDF erstellt werden soll.

Instanziieren Sie die PdfWriter-Klasse, indem Sie einen Zeichenfolgenwert (der den Pfad darstellt, in dem Sie eine PDF-Datei erstellen müssen) an ihren Konstruktor übergeben (siehe Abbildung unten).

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

Wenn ein Objekt dieses Typs an ein PdfDocument (Klasse) übergeben wird, wird jedes zu diesem Dokument hinzugefügte Element in die angegebene Datei geschrieben.

Schritt 2: Erstellen eines PdfDocument-Objekts

Das PdfDocumentKlasse ist die Klasse, die das PDFDocument in iText darstellt. Diese Klasse gehört zum Paketcom.itextpdf.kernel.pdf. Um diese Klasse zu instanziieren (im Schreibmodus), müssen Sie ein Objekt der Klasse übergebenPdfWriter zu seinem Konstruktor.

Instanziieren Sie die PdfDocument Klasse durch Übergeben der oben erstellten PdfWriter Objekt zu seinem Konstruktor, wie unten gezeigt.

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

Einmal PdfDocument Wenn ein Objekt erstellt wird, können Sie verschiedene Elemente wie Seite, Schriftart, Dateianhang und Ereignishandler mit den entsprechenden Methoden der Klasse hinzufügen.

Schritt 3: Erstellen des Dokumentobjekts

Das Document Klasse des Pakets com.itextpdf.layoutist das Stammelement beim Erstellen einer autarken PDF-Datei. Einer der Konstruktoren dieser Klasse akzeptiert ein Objekt der Klasse PdfDocument.

Instanziieren Sie die Document Klasse durch Übergeben des Objekts der Klasse PdfDocument in den vorherigen Schritten erstellt, wie unten gezeigt.

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

Schritt 4: Erstellen eines Tabellenobjekts

Das TableKlasse repräsentiert ein zweidimensionales Gitter, das mit Zellen gefüllt ist und in Zeilen und Spalten angeordnet ist. Es gehört zum Paketcom.itextpdf.layout.element.

Instanziieren Sie die Tabellenklasse wie unten gezeigt.

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

Schritt 5: Zellen erstellen

Ein ... kreieren cell Objekt durch Instanziierung der Cell Klasse des Pakets com.itextpdf.layout.element. Fügen Sie den Inhalt der Zelle mit dem hinzuadd() Methode der Cell Klasse, wie unten gezeigt.

// 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

Schritt 6: Hinzufügen von Hintergrund zur Zelle

Nachdem Sie die Zelle erstellt und Inhalte hinzugefügt haben, können Sie die Zelle formatieren. Sie können beispielsweise den Hintergrund festlegen, den Text in der Zelle ausrichten, die Textfarbe ändern usw., indem Sie verschiedene Methoden der Zellenklasse verwenden, zsetBackgroundColor(), setBorder(), setTextAlignment().

Sie können die Hintergrundfarbe, den Rahmen und die Textausrichtung auf die im vorherigen Schritt erstellte Zelle einstellen, wie unten gezeigt.

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

Schritt 7: Hinzufügen einer Zelle zur Tabelle

Um diese Zelle zur Tabelle hinzuzufügen, rufen Sie schließlich die auf addCell() Methode der Table Klasse und bestehen die cell Objekt als Parameter für diese Methode, wie unten gezeigt.

table.addCell(c1);

Schritt 8: Hinzufügen einer Tabelle zum Dokument

Ergänzen Sie die table Objekt, das im vorherigen Schritt mit dem erstellt wurde add() Methode der Document Klasse wie unten gezeigt.

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

Schritt 9: Schließen des Dokuments

Schließen Sie das Dokument mit der close() Methode der Document Klasse, wie unten gezeigt.

// Closing the document 
document.close();

Beispiel

Das folgende Java-Programm zeigt, wie der Inhalt einer Zelle in einer Tabelle mithilfe der iText-Bibliothek formatiert wird. Es wird ein PDF-Dokument mit dem Namen erstelltaddingBackground.pdf, fügt eine Tabelle hinzu, formatiert den Inhalt seiner Zellen und speichert sie im Pfad C:/itextExamples/

Speichern Sie diesen Code in einer Datei mit dem Namen 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..");     
   } 
}

Kompilieren Sie die gespeicherte Java-Datei und führen Sie sie an der Eingabeaufforderung mit den folgenden Befehlen aus:

javac BackgroundToTable.java 
java BackgroundToTable

Bei der Ausführung erstellt das obige Programm ein PDF-Dokument mit der folgenden Meldung.

Background added successfully..

Wenn Sie den angegebenen Pfad überprüfen, finden Sie das erstellte PDF-Dokument wie unten gezeigt.