iText 核心設計:Document 為統一模型,透過不同 Writer 輸出多種格式。本文展示單一邏輯同時產出 PDF、HTML、RTF (Word 相容) 的範例。
Document doc = new Document(PageSize.A4);
// 1. 選擇 Writer 即可切換格式
// PdfWriter.getInstance(doc, new FileOutputStream("out.pdf")); // PDF
// HtmlWriter.getInstance(doc, new FileOutputStream("out.html")); // HTML (可另存 .doc/.xls)
// RtfWriter2.getInstance(doc, new FileOutputStream("out.rtf")); // RTF (Word 可開)
doc.open();
// 統一建構內容 (Table/Cell/Paragraph 等)
Table table = new Table(3);
table.setBorderWidth(1);
table.setBorderColor(new Color(0,0,255));
table.addCell(new Cell("Header").setHeader(true).setColspan(3));
table.addCell("A1"); table.addCell("B1"); table.addCell("C1");
table.addCell("A2"); table.addCell("B2"); table.addCell("C2");
doc.add(table);
doc.close();
| Writer 類別 | 輸出格式 | 副檔名建議 | 備註 |
|---|---|---|---|
| PdfWriter | 標準、功能最全 | ||
| HtmlWriter | HTML 3.2 | .html / .doc / .xls | 瀏覽器/Word/Excel 可開,**非標準 HTML5**,複雜樣式受限 |
| RtfWriter2 | RTF | .rtf / .doc | Word 相容性佳,支援分頁、頁首尾 |