找不到Itextsharp siging xfa表单字段

时间:2017-06-15 11:45:34

标签: itext

我有一个用adobe生命周期设计师创建的xfa表单。我可以成功填写表单,但它有我无法签名的签名字段。在签署字段时,找不到代码错误说明字段(我有正确的字段名称),但是如果我使用adobe reader并签署表单,我可以使用完全相同的代码重新签名。我正在使用Bruno Lowagie的数字签名PDF文档示例 - 序列签名。我是否需要激活签名字段?感谢任何人的帮助。

1 个答案:

答案 0 :(得分:0)

在PAdES-5中描述了签署XFA表单,虽然您忘记共享任何代码,但您可能正在添加PAdES-2或PAdES-3中所述的签名。在过去,我们已经实现了PAdES-5,但是我们从未提升过该功能,因为据我所知,Adobe本身并没有遵循PAdES-5标准。换句话说:我们的代码遵循标准,但它没用,因为没有其他人实现标准。使用ISO-32000-2,XFA已经被弃用,这意味着对XFA的所有进一步投资都是浪费掉的。令人惊讶的是,您仍在使用XFA,因为多年前已经传达了XFA的弃用。

请允许我解读你的问题:

  • 使用iText搜索签名字段时,找不到该字段。这是正常的:表单是纯XFA表单。没有找到AcroForm字段;该字段以XML表示。 iText仅查看AcroForm签名字段。
  • 您可以使用Adobe Reader对文档进行签名。实际上,Adobe已经实现了一种签署XFA表单的方法,这种方式与PAdES-5略有不同。在签名过程中,将创建一个AcroForm签名字段。
  • 使用Adobe Reader签署文档后,iText可以看到该字段。实际上,由于Adobe Reader添加了AcroForm签名字段,因此iText现在可以检测到它。

你有什么选择?如果您可以放弃XFA,请执行此操作。例如:您可以基于AcroForm技术而不是XFA表单创建表单。如果这不是一个选项,您可以在签名之前展平表单。这样,您将拥有一个普通的PDF,您可以在其中添加AcroForm签名字段。

如果上述选项均不适合您,您唯一的选择就是坚持使用Adobe软件。这意味着购买Adobe LiveCycle ES的许可证。但请注意,XFA是传统软件。如果我是您的首席技术官,我不会批准使用XFA。