如何使用Java將巢狀表新增到PDF?
註:iText開發環境設定,下載iText7 jar(社群版:http://github.com/itext/itext7/releases/tag/7.0.4 ) ,建立一個工程:java_itext,並將下載的itext7 jar包和slf4j( http://www.slf4j.org/download.html )工具包新增到構建路徑中。專案結構如下圖所示 -
以下是使用Java將巢狀表新增到PDF的程式。
package com.yiibai;
import com.itextpdf.kernel.font.PdfFont;
import com.itextpdf.kernel.font.PdfFontFactory;
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.Table;
public class AddNestedTablesPdf {
public static void main(String args[]) throws Exception {
String file = "addingNestedTableToPDF.pdf";
// Creating a PdfDocument object
PdfDocument pdfDoc = new PdfDocument(new PdfWriter(file));
// Creating a Document object
Document doc = new Document(pdfDoc);
// Creating a table
Table table = new Table(2);
// Adding cells to the table
table.addCell(new Cell().add("姓名"));
table.addCell(new Cell().add("蘇小牛"));
table.addCell(new Cell().add("編號"));
table.addCell(new Cell().add("1001"));
table.addCell(new Cell().add("職位"));
table.addCell(new Cell().add("Java開發工程師"));
// Creating table for contact
Table contact = new Table(2);
// Adding table within a table
contact.addCell(new Cell().add("電話"));
contact.addCell(new Cell().add("Email"));
contact.addCell(new Cell().add("地址"));
contact.addCell(new Cell().add("13800138000"));
contact.addCell(new Cell().add("[email protected]"));
contact.addCell(new Cell().add("海南-海口"));
// Adding table to the cell
table.addCell(new Cell().add("詳細聯絡方式"));
table.addCell(new Cell().add(contact));
// 中文支援
PdfFont font = PdfFontFactory.createFont("STSong-Light", "UniGB-UCS2-H", false);
table.setFont(font);
// Adding table to the document
doc.add(table);
// Closing the document
doc.close();
System.out.println("Nested Table Added successfully..");
}
}
執行上面範例程式碼,得到以下結果 -
Nested Table Added successfully..
輸出檔案內容如下所示 -