【问题标题】:Concatenate PDFs and preserve Extended Features in Acrobat Reader在 Acrobat Reader 中连接 PDF 并保留扩展功能
【发布时间】:2011-06-04 04:22:37
【问题描述】:

我们正在使用 iText 自动填写多个文档的表单字段,然后将这些文档连接到一个生成的 PDF 中。

Adobe 引入了“在 Acrobat Reader 中扩展功能”选项,以允许 Acrobat Reader 用户保存 PDF 并更改表单域。

这是 Adob​​e 的专有功能,只有 iText 才能解决。

我已经能够在附加模式下使用 PdfStamper 类为一个特定文档执行工作。由于 PDF 包含表单域,我们使用 PdfCopyFields 类来执行连接。 PdfCopyFields 没有追加模式。

是否有另一种方法可以使用 iText(任何版本)将 PDF 附加到预先存在的 PDF 中?

【问题讨论】:

    标签: pdf itext acrobat


    【解决方案1】:

    这是可能的,但需要您足够了解才能修改 PdfCopyFields 以便它以附加模式保存。

    您可以复制该功能并在 PdfStamper 之上使用它(在您自己的类中或其他)、子类 PdfCopyFields 或直接修改 PdfCopyFields。

    大绊脚石 PDF 中具有相同名称的所有字段也共享相同的值。如果您在生成的 PDF 中有两个相同表单的副本,那么您就有相同数据的两个视图。

    即使使用不同的形式,如果您碰巧有名称冲突(这里的“城市”可能是当前地址的一部分,而那里可能是他们出生的城市),它​​们会一起闪烁相同的值。

    如果您有一个全面的系统,这样您的所有命名冲突都是经过深思熟虑的,那就太好了,不要命了。如果“FirstName”总是指同一个人,并且更改它应该更改所有相关表单的值,那么您就是黄金。如果不是……这就是 PdfStamper 的扁平化能力如此受欢迎的原因。

    替代方案变为“在将表单粘合在一起之前重命名所有字段”以避免此类冲突。

    即使有一个综合系统,我仍然建议开发一个小工具,它可以检查您建议合并的表单并查找冲突。也许在一些测试数据中列出它们以及它们的值。您可能会看到类似“Fly: House, Common”与“Fly: Southwest Airlines”的内容。

    可能不是那个特定的例子,但谁知道呢? ;)

    【讨论】:

    • 谢谢马克。对于字段名称冲突问题,我只是根据附加文档的计数为每个字段添加一个后缀。它对我们有用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-06-30
    • 2022-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-10
    相关资源
    最近更新 更多