找不到Itextsharp标记xfa表单字段

找不到Itextsharp标记xfa表单字段,itext,Itext,我有一个使用adobe lifecycle designer创建的xfa表单。我可以成功填写表单,但是它有我无法签名的签名字段。在签名字段时,代码错误表示找不到字段(我有正确的字段名),但是如果我使用adobe reader并在表单上签名,我可以使用完全相同的代码退出表单。我使用Bruno Lowagie的PDF文档数字签名示例-顺序签名。我需要激活签名字段吗?感谢任何人提供的帮助。签名XFA表单在PAdES-5中有描述,尽管您忘记共享任何代码,但您可能正在添加PAdES-2或PAdES-3中描

我有一个使用adobe lifecycle designer创建的xfa表单。我可以成功填写表单,但是它有我无法签名的签名字段。在签名字段时,代码错误表示找不到字段(我有正确的字段名),但是如果我使用adobe reader并在表单上签名,我可以使用完全相同的代码退出表单。我使用Bruno Lowagie的PDF文档数字签名示例-顺序签名。我需要激活签名字段吗?感谢任何人提供的帮助。

签名XFA表单在PAdES-5中有描述,尽管您忘记共享任何代码,但您可能正在添加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已经实现了一种与PAdES-5稍有不同的XFA表单签名方法。在签名过程中,将创建AcroForm签名字段
  • 使用Adobe Reader签署文档后,iText可以看到该字段。事实上,由于AdobeReader添加了AcroForm签名字段,iText现在可以检测到它
你有什么选择?如果您可以放弃XFA,请这样做。例如:您可以基于AcroForm技术而不是XFA表单创建表单。如果这不是一个选项,您可以在签名之前将表单展平。这样,您将拥有一个普通的PDF,您可以在其中添加AcroForm签名字段


如果以上选项都不适用于您,那么您唯一的选择就是坚持使用Adobe软件。这意味着要为AdobeLiveCycle购买许可证。但是,请注意XFA是遗留软件。如果我是您的首席技术官,我不会批准使用XFA。

非常感谢,回答得很好。我花了很多时间试图解决这个问题,我将尝试你的一些建议。