在Acrobat Reader中连接PDF并保留扩展功能

8
我们正在使用iText自动填充一些文件中的表单字段,然后将这些文档合并为一个PDF文件。Adobe引入了Acrobat Reader的扩展功能选项,以允许Acrobat Reader用户保存带有表单字段更改的PDF文件。这是一种专有的Adobe功能,iText只能绕过它。我已经能够使用PdfStamper类在附加模式下执行一个特定文档的解决方法。由于PDF包含表单字段,我们使用PdfCopyFields类执行连接操作。PdfCopyFields没有附加模式。是否有另一种使用iText(任何版本)将PDF附加到现有PDF的方法?
1个回答

5
可以实现,但需要您了解足够的知识以修改PdfCopyFields以便以附加模式保存。
您可以复制功能并在PdfStamper之上使用它(在自己的类中或其他方式),子类化PdfCopyFields或直接修改PdfCopyFields。
一个大的障碍是,PDF中具有相同名称的所有字段也共享相同的值。如果您在生成的PDF中有两个相同表单的副本,则会有两个相同数据的视图。
即使使用不同的表单,如果发生名称冲突(例如,“City”可能是当前地址的一部分,而在另一个地方它可能是他们出生的城市),它们也将聚合相同的值。
如果您拥有全面的系统,以至于所有命名冲突都是故意的,那就太好了。如果“FirstName”始终指的是同一个人,并且更改它应该跨所有相关表单更改该值,那么您就赚了。如果不是...这就是为什么PdfStamper的平坦化能力如此受欢迎的原因。
另一种选择是“在将表单粘合在一起之前重命名所有字段”,以避免这样的冲突。
即使有全面的系统,我仍建议制作一个小工具,以便浏览您要合并的表单并查找冲突。也许在一些测试数据中列出它们以及它们的值。您可能会发现类似于“Fly: House, Common”与“Fly: Southwest Airlines”的东西。
也许不是这个特定的例子,但谁知道呢? ;)

谢谢Mark。对于字段名称冲突问题,我只是根据附加文档的计数为每个字段添加后缀。这对我们很有效。 - Tom Hubbard

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接