iText - Thêm danh sách vào bảng
Trong chương này, chúng ta sẽ xem cách thêm danh sách vào bảng trong tài liệu PDF bằng thư viện iText.
Thêm danh sách vào bảng trong PDF
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ạ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.
Để thêm một list vào bảng, bạn cần phải khởi tạo List lớp của com.itextpdf.layout.element gói và chèn nó vào cell đối tượng sử dụng add() phương pháp của Cell lớp học.
Sau đây là các bước để thêm danh sách vào ô của bảng.
Bước 1: Tạo đối tượng PdfWriter
Các PdfWriterlớp đại diện cho Doc Writer 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 truyề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/addingObjects.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 PdfDocumentlớp là lớp đại diện cho Tài liệu PDF trong iText. Lớp này thuộc gói com.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 bằng cách chuyển đối tượng PdfWriter đã tạo ở trên tới phương thức khởi 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 cell đối tượng bằng cách khởi tạo Cell lớp của gói com.itextpdf.layout, như hình dưới đây.
// Adding cell to the table
Cell listCell = new Cell(); // Creating a cell
Bước 6: Tạo đối tượng Danh sách
Sau khi tạo ô, hãy tạo list đối tượng bằng cách khởi tạo List lớp của gói com.itextpdf.layout.element. Tạo các mục trong danh sách bằng cách khởi tạoListItem và thêm các mục đã tạo bằng cách sử dụng add() phương pháp của List lớp, như hình dưới đây.
List list = new List();
ListItem item1 = new ListItem("JavaFX");
ListItem item2 = new ListItem("Java");
ListItem item3 = new ListItem("Java Servlets");
list.add(item1);
list.add(item2);
list.add(item3);
Bước 7: Thêm danh sách vào ô của bảng
Bây giờ, hãy thêm danh sách đã tạo ở trên vào ô của bảng bằng cách sử dụng add()phương thức của lớp Cell. Và thêm ô này vào bảng bằng cách sử dụngaddCell() phương pháp của Table lớp, như hình dưới đây.
listCell.add(list);
table.addCell(listCell);
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 dưới đây.
// 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 thêm danh sách vào một ô của bảng trong tài liệu PDF bằng thư viện iText. Nó tạo ra một tài liệu PDF với tênaddingObjects.pdf, thêm một bảng vào đó, chèn một danh sách vào một trong các ô của nó và lưu nó trong đường dẫn C:/itextExamples/
Lưu mã này trong một tệp có tên AddingListsToTable.java.
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.element.Cell;
import com.itextpdf.layout.element.List;
import com.itextpdf.layout.element.ListItem;
import com.itextpdf.layout.element.Table;
import com.itextpdf.layout.property.TextAlignment;
public class AddingListsToTable {
public static void main(String args[]) throws Exception {
// Creating a PdfWriter object
String file = "C:/itextExamples/addingObjects.pdf";
PdfDocument pdfDoc = new PdfDocument(new PdfWriter(file));
// Creating a Document object
Document doc = new Document(pdfDoc);
// Creating a table
float [] pointColumnWidths = {300F, 300F};
Table table = new Table(pointColumnWidths);
// Adding row 1 to the table
Cell c1 = new Cell();
c1.add("Java Related Tutorials");
c1.setTextAlignment(TextAlignment.LEFT);
table.addCell(c1);
List list1 = new List();
ListItem item1 = new ListItem("JavaFX");
ListItem item2 = new ListItem("Java");
ListItem item3 = new ListItem("Java Servlets");
list1.add(item1);
list1.add(item2);
list1.add(item3);
Cell c2 = new Cell();
c2.add(list1);
c2.setTextAlignment(TextAlignment.LEFT);
table.addCell(c2);
// Adding row 2 to the table
Cell c3 = new Cell();
c3.add("No SQL Databases");
c3.setTextAlignment(TextAlignment.LEFT);
table.addCell(c3);
List list2 = new List();
list2.add(new ListItem("HBase"));
list2.add(new ListItem("Neo4j"));
list2.add(new ListItem("MongoDB"));
Cell c4 = new Cell();
c4.add(list2);
c4.setTextAlignment(TextAlignment.LEFT);
table.addCell(c4);
// Adding Table to document
doc.add(table);
// Closing the document
doc.close();
System.out.println("Lists added to table 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 AddingListsToTable.java
java AddingListsToTable
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.
Lists added to table 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.