我正在编写生成PDF和RTF文档的代码,具体取决于用户的选择.两份文件中的信息是相同的.
到目前为止,我们使用的是Table,Cell,HeaderFooter等类,它们由文档编写者(PdfWriter或RtfWriter2)呈现为正确的形式.
然而,我进一步尝试进行更改(主要是因为升级到iText 2.1使间距有点古怪),我被告知"使用PdfpTable"或"使用pageEvents设置标题"越多.似乎很多泛型类都被弃用了.
我正在考虑修改代码以分离PDF和RTF的表创建.但是,所有iText教程似乎都建议在需要PDF和RTF文档的实例中使用Table.
另外,看起来虽然有一个PdfpTable类,但RTF没有类似的东西,所以我还是会使用Table,这会让我容易受到现在不支持的Table类所带来的所有怪癖的影响.
基本上,将代码分成两个部分的好处/缺点是什么 - 一个用于创建PDF文档,另一个用于以RTF格式创建相同的文档(如果已选择)?SimpleTable在哪里可以实现这一切?它会给我我需要的灵活性吗?
谢谢!
从iText In Action一书中可以看出,第6章结尾:
如果你看一下iText API,你还会找到一些其他的表类.com.lowagie.text.Table是原始的表类; 它可以追溯到iText早期的日子.它在内部使用类com.lowagie.text.pdf.PdfTable将表呈现为PDF(不要将此类与PdfPTable混淆).
还有一个较新的SimpleTable类,它试图在PdfPTable和Table之间形成一个链接
.如果您将其自身转换为PdfPTable,如果您将其添加到写入PDF的文档中,或者如果您正在生成HTML或RTF,则可以将其转换为表格.[...] 表
的主要缺点类是它不再受支持.不同的人已经修复了大多数已知问题,但是今天没有一个人能够理解所有Table方法是否以及如何工作.如果您决定使用这个课程,那么您或多或少地依靠自己,并且根据历史设计决策,您将遇到许多古怪的布局问题.但是,这并不意味着您无法充分利用Table类.
Table类的优点
使用Table类,您可以生成可以PDF,RTF和HTML呈现的表结构.如果比较结果,您会发现表格的呈现方式存在细微差别.这个是正常的; 并非每种文档格式都支持每个表格功能.
与PdfPTable相反,您可以按随机顺序向表中添加单元格,并根据需要添加或删除列.如果不使用setRowspan(),甚至可以将表转换为PdfPTable.
还有SimpleTable类,它是(PdfP) - Table的简化版本.将SimpleTable添加到PDF文档时,iText首先尝试将该表添加为PdfPTable ; 如果失败,则将其添加为表格.将SimpleTable添加到RTF或HTML文档时,它将作为表添加.SimpleTable与Table和PdfPTable不同从某种意义上说,它重新引入了行的概念.如果您正在解析具有表行单元结构的XML文件,这可能很方便.如果与行对应的标记具有属性,则不必单独为行中的每个单元格定义此属性; 您可以一次设置整行的属性.
摘要
PdfPTable应该是您的首选; 但是根据为项目定义的要求,可以有充分的理由选择Table或SimpleTable.
| 归档时间: |
|
| 查看次数: |
3307 次 |
| 最近记录: |