iText - Formatieren der Grenzen einer Zelle

In diesem Kapitel erfahren Sie, wie Sie die Ränder einer Zelle in einer Tabelle mithilfe der iText-Bibliothek formatieren.

Formatieren der Rahmen einer Zelle

Sie können ein leeres PDF-Dokument erstellen, indem Sie das instanziieren DocumentKlasse. Während Sie diese Klasse instanziieren, müssen Sie a bestehenPdfDocument Objekt als Parameter für seinen Konstruktor.

Um dem Dokument eine Tabelle hinzuzufügen, müssen Sie die instanziieren Table Klasse und fügen Sie dieses Objekt dem Dokument mit der add() Methode.

Sie können verschiedene Arten von Rahmen wie hinzufügen DashedBorder, SolidBorder, DottedBorder, DoubleBorder, RoundDotsBorderusw. mit verschiedenen Farben unter Verwendung der setBorder() Methode der Cell Klasse.

Im Folgenden finden Sie die Schritte zum Formatieren der Ränder 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/coloredBorders.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);

Sobald ein PdfDocument-Objekt erstellt wurde, können Sie verschiedene Elemente wie Seite, Schriftart, Dateianhang und Ereignishandler mit den entsprechenden Methoden seiner 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, die in Zeilen und Spalten angeordnet sind. Es gehört zum Paketcom.itextpdf.layout.element.

Instanziieren Sie die Table Klasse wie unten gezeigt.

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

Schritt 5: Zellen erstellen

Erstellen Sie ein Zellenobjekt, indem Sie das instanziieren Cell Klasse des Pakets com.itextpdf.layout.element Fügen Sie den Inhalt der Zelle mit dem hinzu add() 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

Schritt 6: Formatieren des Zellenrandes

Die iText-Bibliothek bietet verschiedene Klassen, die den Rand darstellen, wie z DashedBorder, SolidBorder, DottedBorder, DoubleBorder, RoundDotsBorder, usw.

Die Konstruktoren dieser Klassen akzeptieren zwei Parameter: a color Objekt, das die Farbe des Randes darstellt, und ein integer Darstellen der Breite des Randes.

Wählen Sie einen dieser Randtypen und instanziieren Sie den entsprechenden Rand, indem Sie den übergeben color Objekt und ein integer Darstellung der Breite, wie unten gezeigt.

Border b1 = new DashedBorder(Color.RED, 3);

Stellen Sie nun den Rand der Zelle mit dem ein setBorder() Methode der cellKlasse. Diese Methode akzeptiert ein Objekt des TypsBorder als Parameter.

Legen Sie den Rand der Zelle fest, indem Sie die oben erstellte übergeben Border Objekt als Parameter zum setBorder() Methode wie unten gezeigt.

c1.setBorder(b1)

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 7: 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 8: 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 Rand einer Zelle in einer Tabelle mithilfe der iText-Bibliothek formatiert wird. Es wird ein PDF-Dokument mit dem Namen erstelltcoloredBorders.pdf, fügt ihm eine Tabelle hinzu, formatiert den Inhalt seiner Zellen und speichert ihn im Pfad C:/itextExamples/

Speichern Sie diesen Code in einer Datei mit dem Namen FormatedBorders.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.border.DashedBorder; 
import com.itextpdf.layout.border.DottedBorder; 
import com.itextpdf.layout.border.DoubleBorder; 
import com.itextpdf.layout.border.RoundDotsBorder; 
import com.itextpdf.layout.border.SolidBorder; 

import com.itextpdf.layout.element.Cell; 
import com.itextpdf.layout.element.Table; 
import com.itextpdf.layout.property.TextAlignment;  

public class FormatedBorders {      
   public static void main(String args[]) throws Exception {
      // Creating a PdfWriter object   
      String dest = "C:/itextExamples/coloredBorders.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); 
   
      // Adding row 1 to the table
      Cell c1 = new Cell();
      
      // Adding the contents of the cell
      c1.add("Name");
   
      // Setting the back ground color of the cell
      c1.setBackgroundColor(Color.DARK_GRAY);    
   
      // Instantiating the Border class 
      Border b1 = new DashedBorder(Color.RED, 3);
   
      // Setting the border of the cell
      c1.setBorder(b1);
      
      // Setting the text alignment       
      c1.setTextAlignment(TextAlignment.CENTER);
   
      // Adding the cell to the table       
      table.addCell(c1);                          
      Cell c2 = new Cell();       
      c2.add("Raju");       
      c1.setBorder(new SolidBorder(Color.RED, 3));       
      c2.setTextAlignment(TextAlignment.CENTER);       
      table.addCell(c2);
   
      // Adding row 2 to the table                
      Cell c3 = new Cell();      
      c3.add("Id"); 
      c3.setBorder(new DottedBorder(Color.DARK_GRAY, 3));       
      c3.setTextAlignment(TextAlignment.CENTER);      
      table.addCell(c3);                          
      
      Cell c4 = new Cell();       
      c4.add("001");       
      c4.setBorder(new DoubleBorder(Color.DARK_GRAY, 3));       
      c4.setTextAlignment(TextAlignment.CENTER);       
      table.addCell(c4);                          
      
      // Adding row 3 to the table       
      Cell c5 = new Cell();       
      c5.add("Designation");       
      c5.setBorder(new RoundDotsBorder(Color.RED, 3));       
      c5.setTextAlignment(TextAlignment.CENTER);       
      table.addCell(c5);                 
      
      Cell c6 = new Cell();       
      c6.add("Programmer");       
      c6.setBorder(new RoundDotsBorder(Color.RED, 3)); 
      c6.setTextAlignment(TextAlignment.CENTER);      
      table.addCell(c6);                              
      
      // Adding Table to document        
      doc.add(table);                  
      
      // Closing the document       
      doc.close();  
      
      System.out.println("Borders added successfully..");     
   } 
}

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

javac FormatedBorders.java 
java FormatedBorders

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

Borders added successfully

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