1

我刚刚花了一点时间弄清楚如何使用 iText 将可填充字段插入到 PdfPTable 中。通过阅读这本书和谷歌搜索,我知道应该通过直接内容添加字段,并且由于我需要将字段添加到我正在构建的表格中的特定单元格,我应该使用单元格事件来执行此操作。

为了提高我的理解,我希望有人可以确认我们这样做的原因是因为 PdfPCellEvent 给了我们一个 Rectangle ,它为我们提供了表格单元格的确切位置?

抱歉,如果这看起来很明显 - 我的 Java 知识是通过解决特定要求而不是通过结构化方式学习来建立的,因此可能缺少一些非常基本的概念。

4

1 回答 1

1

PdfPTable/PdfPCell 将线条和文本绘制到 PDF 的内容流中。

字段不是内容流的一部分。字段是一个抽象概念,可以通过小部件注释在页面上进行可视化。注释不是内容流的一部分。它们存储在从页面字典引用的 PDF 字典中(而不是出现在页面的内容流中)。这些字典包含注释的坐标。

这就是为什么您应该使用单元格事件将字段添加到表格中的原因。将表格添加到页面时,iText 会创建内容流。在渲染完成之前,iText 并不知道每一行和文本片段的坐标。那是触发表格和单元格事件的时候。您可以使用传递给事件的坐标来创建注释。

于 2013-03-09T11:18:48.053 回答