iText - Định dạng nội dung ô
Trong chương này, chúng ta sẽ xem cách tạo tài liệu PDF, thêm bảng và định dạng nội dung của ô trong bảng bằng thư viện iText.
Định dạng các ô trong bảng
Bạn có thể tạo một tệp PDF trống Documentbằng cách khởi tạo lớp Tài liệu. 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ố, đối với 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ạoTable 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ể định dạng nội dung của một ô trong bảng bằng các phương pháp củaCell lớp học.
Sau đây là các bước để định dạng nội dung 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/addingBackground.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);
Một lần PdfDocument đối tượng đượ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 thức 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 lớp Table như hình dưới đây.
// Creating a table
float [] pointColumnWidths = {200F, 200F};
Table table = new Table(pointColumnWidths);
Bước 5: Tạo ô
Tạo một cell đố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ụngadd() 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
// Adding cell 2 to the table
Cell cell2 = new Cell(); // Creating a cell
cell2.add("Raju"); // Adding content to the cell
Bước 6: Thêm nền vào ô
Khi bạn đã tạo ô và thêm nội dung vào ô đó, bạn có thể định dạng ô. Ví dụ: bạn có thể đặt nền của nó, căn chỉnh văn bản bên trong ô, thay đổi màu văn bản, v.v., bằng cách sử dụng các phương thức khác nhau của lớp ô nhưsetBackgroundColor(), setBorder(), setTextAlignment().
Bạn có thể đặt màu nền, đường viền và căn chỉnh văn bản cho ô đã tạo ở bước trước, như được hiển thị bên dưới.
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
Bước 7: Thêm ô vào bảng
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 8: 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 bên dưới.
// Adding list to the document
document.add(table);
Bước 9: Đó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 nội dung 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ênaddingBackground.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 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..");
}
}
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 BackgroundToTable.java
java BackgroundToTable
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.
Background 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.