iText - Định dạng đường viền của ô

Trong chương này, chúng ta sẽ xem cách định dạng đường viền của một ô trong bảng bằng thư viện iText.

Định dạng các đường viền của một ô

Bạn có thể tạo một Tài liệu PDF trống bằng cách khởi tạo Documentlớp học. Trong khi khởi tạo lớp này, bạn cần phải vượt quaPdfDocument đối tượng như một tham số cho phương thức khởi tạo của nó.

Sau đó, để thêm bảng vào tài liệu, bạn cần khởi tạo Table và thêm đối tượng này vào tài liệu bằng cách sử dụng add() phương pháp.

Bạn có thể thêm nhiều loại đường viền khác nhau như DashedBorder, SolidBorder, DottedBorder, DoubleBorder, RoundDotsBorder, v.v. với nhiều màu sắc khác nhau bằng cách sử dụng setBorder() phương pháp của Cell lớp học.

Sau đây là các bước để định dạng đường viền của một ô trong bảng.

Bước 1: Tạo đối tượng PdfWriter

Các PdfWriterlớp đại diện cho DocWriter cho một tệp PDF. Lớp này thuộc về góicom.itextpdf.kernel.pdf. Hàm tạo của lớp này chấp nhận một chuỗi, đại diện cho đường dẫn của tệp nơi tệp PDF sẽ được tạo.

Khởi tạo lớp PdfWriter bằng cách chuyển một giá trị chuỗi (đại diện cho đường dẫn mà bạn cần tạo PDF) đến phương thức khởi tạo của nó, như được hiển thị bên dưới.

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

Khi một đối tượng thuộc loại này được chuyển đến PdfDocument (lớp), mọi phần tử được thêm vào tài liệu này sẽ được ghi vào tệp được chỉ định.

Bước 2: Tạo đối tượng PdfDocument

Các PdfDocumentclass là lớp đại diện cho PDFDocument trong iText. Lớp này thuộc về góicom.itextpdf.kernel.pdf. Để khởi tạo lớp này (ở chế độ viết), bạn cần chuyển một đối tượng của lớpPdfWriter với hàm tạo của nó.

Khởi tạo PdfDocument lớp bằng cách chuyển ở trên đã tạo PdfWriter đối tượng với hàm tạo của nó, như được hiển thị bên dưới.

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

Khi một đối tượng PdfDocument được tạo, bạn có thể thêm các phần tử khác nhau như trang, phông chữ, tệp đính kèm và trình xử lý sự kiện bằng cách sử dụng các phương pháp tương ứng do lớp của nó cung cấp.

Bước 3: Tạo đối tượng Tài liệu

Các Document lớp của gói com.itextpdf.layoutlà phần tử gốc trong khi tạo một tệp PDF tự túc. Một trong những hàm tạo của lớp này chấp nhận một đối tượng của lớp PdfDocument.

Khởi tạo Document lớp bằng cách truyền đối tượng của lớp PdfDocument được tạo ở các bước trước, như được hiển thị bên dưới

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

Bước 4: Tạo đối tượng Table

Các Tablelớp đại diện cho một lưới hai chiều chứa đầy các ô được sắp xếp theo hàng và cột. Nó thuộc về góicom.itextpdf.layout.element.

Khởi tạo Table lớp như hình bên dưới.

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

Bước 5: Tạo ô

Tạo một đối tượng ô bằng cách khởi tạo Cell lớp của gói com.itextpdf.layout.element thêm nội dung của ô bằng cách sử dụng add() phương pháp của Cell lớp, như hình dưới đây.

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

Bước 6: Định dạng đường viền của ô

Thư viện iText cung cấp các lớp khác nhau đại diện cho đường viền như DashedBorder, SolidBorder, DottedBorder, DoubleBorder, RoundDotsBorder, Vân vân.

Các hàm tạo của các lớp này chấp nhận hai tham số: a color đối tượng đại diện cho màu của đường viền và integer đại diện cho chiều rộng của đường viền.

Chọn một trong các loại đường viền này và tạo đường viền tương ứng bằng cách chuyển color đối tượng và một integer đại diện cho chiều rộng, như được hiển thị bên dưới.

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

Bây giờ, hãy đặt đường viền của ô bằng cách sử dụng setBorder() phương pháp của celllớp học. Phương thức này chấp nhận một đối tượng kiểuBorder như một tham số.

Đặt đường viền của ô bằng cách vượt qua phần trên đã tạo Border đối tượng làm tham số cho setBorder() như hình dưới đây.

c1.setBorder(b1)

Cuối cùng, để thêm ô này vào bảng, hãy gọi addCell() phương pháp của Table lớp và vượt qua cell đối tượng như một tham số cho phương thức này, như được hiển thị bên dưới.

table.addCell(c1);

Bước 7: Thêm bảng vào tài liệu

Thêm table đối tượng được tạo ở bước trước bằng cách sử dụng add() phương pháp của Document lớp, như hình dưới đây.

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

Bước 8: Đóng tài liệu

Đóng tài liệu bằng cách sử dụng close() phương pháp của Document lớp, như hình dưới đây.

// Closing the document 
document.close();

Thí dụ

Chương trình Java sau đây trình bày cách định dạng đường viền của ô trong bảng bằng thư viện iText. Nó tạo ra một tài liệu PDF với têncoloredBorders.pdf, thêm một bảng vào đó, định dạng nội dung của các ô và lưu nó trong đường dẫn C:/itextExamples/

Lưu mã này trong một tệp có tên 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..");     
   } 
}

Biên dịch và thực thi tệp Java đã lưu từ Dấu nhắc lệnh bằng các lệnh sau:

javac FormatedBorders.java 
java FormatedBorders

Khi thực hiện, chương trình trên tạo một tài liệu PDF, hiển thị thông báo sau.

Borders added successfully

Nếu bạn xác minh đường dẫn được chỉ định, bạn có thể tìm thấy tài liệu PDF đã tạo, như được hiển thị bên dưới.