iText - Formatowanie granic komórki

W tym rozdziale zobaczymy, jak sformatować obramowanie komórki w tabeli za pomocą biblioteki iText.

Formatowanie granic komórki

Możesz utworzyć pusty dokument PDF, tworząc wystąpienie Documentklasa. Podczas tworzenia instancji tej klasy musisz przekazać plikPdfDocument obiekt jako parametr jego konstruktora.

Następnie, aby dodać tabelę do dokumentu, musisz utworzyć wystąpienie Table i dodaj ten obiekt do dokumentu przy użyciu rozszerzenia add() metoda.

Możesz dodać różne typy granic, takie jak DashedBorder, SolidBorder, DottedBorder, DoubleBorder, RoundDotsBorderitp. z różnymi kolorami za pomocą setBorder() metoda Cell klasa.

Poniżej przedstawiono kroki formatowania krawędzi komórki w tabeli.

Krok 1: Tworzenie obiektu PdfWriter

Plik PdfWriterreprezentuje DocWriter dla pliku PDF. Ta klasa należy do pakietucom.itextpdf.kernel.pdf. Konstruktor tej klasy akceptuje ciąg znaków reprezentujący ścieżkę do pliku, w którym ma zostać utworzony plik PDF.

Utwórz wystąpienie klasy PdfWriter, przekazując wartość ciągu (reprezentującą ścieżkę, w której należy utworzyć plik PDF) do jej konstruktora, jak pokazano poniżej.

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

Gdy obiekt tego typu jest przekazywany do PdfDocument (klasy), każdy element dodany do tego dokumentu zostanie zapisany w określonym pliku.

Krok 2: Tworzenie obiektu PdfDocument

Plik PdfDocumentclass to klasa reprezentująca PDFDocument w iText. Ta klasa należy do pakietucom.itextpdf.kernel.pdf. Aby utworzyć instancję tej klasy (w trybie pisania), musisz przekazać obiekt tej klasyPdfWriter do swojego konstruktora.

Utwórz wystąpienie PdfDocument klasa, przekazując powyższe utworzone PdfWriter obiekt do swojego konstruktora, jak pokazano poniżej.

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

Po utworzeniu obiektu PdfDocument można dodać różne elementy, takie jak strona, czcionka, załącznik do pliku i moduł obsługi zdarzeń, używając odpowiednich metod udostępnionych przez jego klasę.

Krok 3: Tworzenie obiektu dokumentu

Plik Document klasa pakietu com.itextpdf.layoutjest elementem głównym podczas tworzenia samowystarczalnego pliku PDF. Jeden z konstruktorów tej klasy akceptuje obiekt klasy PdfDocument.

Utwórz wystąpienie Document class poprzez przekazanie obiektu klasy PdfDocument utworzone w poprzednich krokach, jak pokazano poniżej.

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

Krok 4: Tworzenie obiektu tabeli

Plik Tableclass reprezentuje dwuwymiarową siatkę wypełnioną komórkami uporządkowanymi w wierszach i kolumnach. Należy do pakietucom.itextpdf.layout.element.

Utwórz wystąpienie Table klasa, jak pokazano poniżej.

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

Krok 5: Tworzenie komórek

Utwórz obiekt komórki, tworząc wystąpienie Cell klasa pakietu com.itextpdf.layout.element dodaj zawartość komórki za pomocą add() metoda Cell klasa, jak pokazano poniżej.

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

Krok 6: Formatowanie obramowania komórki

Biblioteka iText udostępnia różne klasy reprezentujące obramowanie, takie jak DashedBorder, SolidBorder, DottedBorder, DoubleBorder, RoundDotsBorderitp.

Konstruktorzy tych klas akceptują dwa parametry: a color obiekt reprezentujący kolor obramowania i plik integer reprezentująca szerokość granicy.

Wybierz jeden z tych typów granic i utwórz wystąpienie odpowiedniej granicy, przekazując plik color obiekt i integer reprezentujące szerokość, jak pokazano poniżej.

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

Teraz ustaw obramowanie komórki za pomocą setBorder() metoda cellklasa. Ta metoda akceptuje obiekt typuBorder jako parametr.

Ustaw obramowanie komórki, przekazując powyższe utworzone Border obiekt jako parametr do setBorder() metoda, jak pokazano poniżej.

c1.setBorder(b1)

Na koniec, aby dodać tę komórkę do tabeli, wywołaj addCell() metoda Table klasę i zdaj cell obiekt jako parametr tej metody, jak pokazano poniżej.

table.addCell(c1);

Krok 7: Dodawanie tabeli do dokumentu

Dodaj table obiekt utworzony w poprzednim kroku przy użyciu add() metoda Document klasa, jak pokazano poniżej.

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

Krok 8: Zamknięcie dokumentu

Zamknij dokument za pomocą close() metoda Document klasa, jak pokazano poniżej.

// Closing the document 
document.close();

Przykład

Poniższy program w języku Java demonstruje, jak sformatować obramowanie komórki w tabeli przy użyciu biblioteki iText. Tworzy dokument PDF o nazwiecoloredBorders.pdf, dodaje do niej tabelę, formatuje zawartość swoich komórek i zapisuje ją na ścieżce C:/itextExamples/

Zapisz ten kod w pliku o nazwie 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..");     
   } 
}

Skompiluj i uruchom zapisany plik Java z wiersza polecenia, używając następujących poleceń -

javac FormatedBorders.java 
java FormatedBorders

Po uruchomieniu powyższy program tworzy dokument PDF, wyświetlając następujący komunikat.

Borders added successfully

Jeśli zweryfikujesz określoną ścieżkę, możesz znaleźć utworzony dokument PDF, jak pokazano poniżej.