来自iText In Action一书,第 6 章结尾:
如果您查看 iText API,您还会发现其他一些表类。com.lowagie.text.Table是原始表格类;它可以追溯到早期的 iText 时代。它在内部使用com.lowagie.text.pdf.PdfTable类将表格呈现为 PDF(不要将此类与PdfPTable混淆)。
还有较新的SimpleTable类,它试图在
PdfPTable和Table之间形成链接。如果您将其添加到编写 PDF 的文档或表中(如果您正在生成 HTML 或 RTF),它能够将自身转换为PdfPTable 。[...]表
的主要缺点
类是它不再受支持。不同的人已经解决了大多数已知问题,但今天没有一个人了解所有表格方法是否以及如何工作。如果你决定使用这个类,你或多或少是靠自己的,你会遇到很多基于历史设计决策的古怪布局问题。但是,这并不意味着您不能很好地利用Table类。
表类的优点
使用 Table 类,您可以生成可以以 PDF、RTF 和 HTML 呈现的表格结构。如果您比较结果,您会发现表格的呈现方式存在细微差别。这个是正常的; 并非每种文档格式都支持每种表格功能。
- 您可以使用相同的代码以 PDF、HTML 或 RTF 格式生成表格。
- 您可以像在 HTML 中那样设置填充和间距。
- 您可以使用行跨度而不必求助于嵌套表。
- 即使添加了单元格,您也可以更改列数。
- 您可以在特定位置添加单元格(行数动态增加)。
- 您可以在将表格添加到文档之前删除一列。
- 您可以让 iText 添加Table,就好像它是PdfPTable 一样。
- 您将获得基于Table对象的PdfPTable对象。
与 PdfPTable 不同,您可以按随机顺序将单元格添加到表中,并在需要时添加或删除列。如果您不使用 setRowspan(),您甚至可以将 Table 转换为 PdfPTable。
还有SimpleTable类,它是 ( PdfP )- Table的简化版本。将SimpleTable添加到 PDF 文档时,iText 首先尝试将表格添加为PdfPTable;如果失败,则将其添加为Table。将SimpleTable添加到 RTF 或 HTML 文档时,它被添加为Table。SimpleTable不同于Table和PdfPTable从某种意义上说,它重新引入了行的概念。如果您正在解析具有表格行单元结构的 XML 文件,这会很方便。如果行对应的标签有属性,则不必为行中的每个单元格单独定义该属性;您可以一次设置整行的属性。
概括
PdfPTable应该是您的首选;但是根据为您的项目定义的要求,可能有充分的理由选择Table或SimpleTable。