iText - Formattazione dei bordi di una cella

In questo capitolo vedremo come formattare i bordi di una cella in una tabella utilizzando la libreria iText.

Formattazione dei bordi di una cella

È possibile creare un documento PDF vuoto istanziando il file Documentclasse. Durante la creazione di un'istanza di questa classe, è necessario superare un filePdfDocument oggetto come parametro del suo costruttore.

Quindi, per aggiungere una tabella al documento, è necessario creare un'istanza del file Table class e aggiungi questo oggetto al documento usando il add() metodo.

Puoi aggiungere vari tipi di bordi come DashedBorder, SolidBorder, DottedBorder, DoubleBorder, RoundDotsBorder, ecc. con vari colori utilizzando il setBorder() metodo del Cell classe.

Di seguito sono riportati i passaggi per formattare i bordi di una cella in una tabella.

Passaggio 1: creazione di un oggetto PdfWriter

Il PdfWriterclass rappresenta il DocWriter per un PDF. Questa classe appartiene al pacchettocom.itextpdf.kernel.pdf. Il costruttore di questa classe accetta una stringa, che rappresenta il percorso del file in cui deve essere creato il PDF.

Istanziare la classe PdfWriter passando un valore stringa (che rappresenta il percorso in cui è necessario creare un PDF) al suo costruttore, come mostrato di seguito.

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

Quando un oggetto di questo tipo viene passato a un PdfDocument (classe), ogni elemento aggiunto a questo documento verrà scritto nel file specificato.

Passaggio 2: creazione di un oggetto PdfDocument

Il PdfDocumentclass è la classe che rappresenta il PDFDocument in iText. Questa classe appartiene al pacchettocom.itextpdf.kernel.pdf. Per istanziare questa classe (in modalità di scrittura), è necessario passare un oggetto della classePdfWriter al suo costruttore.

Istanziare il file PdfDocument classe passando quanto sopra creato PdfWriter oggetto al suo costruttore, come mostrato di seguito.

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

Una volta creato un oggetto PdfDocument, è possibile aggiungere vari elementi come pagina, font, file allegati e gestore eventi utilizzando i rispettivi metodi forniti dalla sua classe.

Passaggio 3: creazione dell'oggetto Documento

Il Document classe del pacchetto com.itextpdf.layoutè l'elemento principale durante la creazione di un PDF autosufficiente. Uno dei costruttori di questa classe accetta un oggetto della classe PdfDocument.

Istanziare il file Document class passando l'oggetto della classe PdfDocument creato nei passaggi precedenti, come mostrato di seguito.

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

Passaggio 4: creazione di un oggetto tabella

Il Tableclass rappresenta una griglia bidimensionale riempita di celle ordinate in righe e colonne. Appartiene al pacchettocom.itextpdf.layout.element.

Istanziare il file Table classe come mostrato di seguito.

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

Passaggio 5: creazione di celle

Crea un oggetto cella istanziando il file Cell classe del pacchetto com.itextpdf.layout.element aggiungi il contenuto della cella usando il add() metodo del Cell classe, come mostrato di seguito.

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

Passaggio 6: formattazione del bordo della cella

La libreria iText fornisce varie classi che rappresentano il bordo come DashedBorder, SolidBorder, DottedBorder, DoubleBorder, RoundDotsBorder, eccetera.

I costruttori di queste classi accettano due parametri: a color oggetto che rappresenta il colore del bordo e un integer che rappresenta la larghezza del bordo.

Scegli uno di questi tipi di bordo e crea un'istanza del rispettivo bordo passando il color oggetto e un integer che rappresenta la larghezza, come mostrato di seguito.

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

Ora, imposta il bordo della cella usando il setBorder() metodo del cellclasse. Questo metodo accetta un oggetto del tipoBorder come parametro.

Imposta il bordo della cella passando quanto sopra creato Border oggetto come parametro di setBorder() metodo come mostrato di seguito.

c1.setBorder(b1)

Infine, per aggiungere questa cella alla tabella, chiama il file addCell() metodo del Table class e passare il cell oggetto come parametro di questo metodo, come mostrato di seguito.

table.addCell(c1);

Passaggio 7: aggiunta di una tabella al documento

Aggiungi il table oggetto creato nel passaggio precedente utilizzando il add() metodo del Document classe, come mostrato di seguito.

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

Passaggio 8: chiusura del documento

Chiudere il documento utilizzando il file close() metodo del Document classe, come mostrato di seguito.

// Closing the document 
document.close();

Esempio

Il seguente programma Java mostra come formattare il bordo di una cella in una tabella utilizzando la libreria iText. Crea un documento PDF con il nomecoloredBorders.pdf, aggiunge una tabella, formatta il contenuto delle sue celle e lo salva nel percorso C:/itextExamples/

Salva questo codice in un file con il nome 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..");     
   } 
}

Compilare ed eseguire il file Java salvato dal prompt dei comandi utilizzando i seguenti comandi:

javac FormatedBorders.java 
java FormatedBorders

Al momento dell'esecuzione, il programma di cui sopra crea un documento PDF, visualizzando il seguente messaggio.

Borders added successfully

Se verifichi il percorso specificato, puoi trovare il documento PDF creato, come mostrato di seguito.