我们正在使用iText自动填写多个文档中的表单字段,然后将这些文档连接成一个生成的PDF文件。
Adobe在Acrobat Reader中引入了扩展功能选项,允许Acrobat Reader用户通过更改表单字段来保存PDF。
这是Adobe专有的功能,iText只能解决这个问题。
我已经能够在追加模式下使用PdfStamper类执行一个特定文档的工作。由于PDF包含表单字段,因此我们使用PdfCopyFields类来执行连接。 PdfCopyFields没有追加模式。
有没有其他方法可以使用iText(任何版本)将PDF附加到预先存在的PDF中?
答案 0 :(得分:5)
这是可能的,但需要你足够了解修改PdfCopyFields,以便在追加模式下保存。
您可以复制功能并在PdfStamper(在您自己的类或其他方面),子类PdfCopyFields或直接修改PdfCopyFields之上使用它。
大绊脚石 PDF中具有相同名称的所有字段也共享相同的值。如果您在生成的PDF中有两个相同表单的副本,则您有两个相同数据的视图。
即使有不同的形式,如果碰巧有名称冲突(这里的“城市”可能是当前地址的一部分,而在那里可能是他们出生的城市),他们会一起出现相同的价值。
如果你有一个综合系统,所有你的命名冲突将是故意的,那很好,去破产。如果“FirstName”总是指同一个人,并且更改它应该改变所有相关形式的值,那么你就是金色的。如果不是......这就是为什么PdfStamper的扁平化能力如此受欢迎。
替代方案变为“在将表格粘合在一起之前重命名所有字段”以避免此类冲突。
即使使用综合系统,我仍然建议制作一个小工具,它会遍历您建议合并并寻找碰撞的表格。也许可以在一些测试数据中列出它们的值。您可能会听到“飞行:众议院,普通”与“飞行:西南航空”之类的内容。
可能不是那个特别的例子,但谁知道呢? ;)