我们正在使用通过Adobe生命周期设计器9生成的PDF动态表单。表单数据存储在XFA中,由iText设置,也由Adobe Reader中的用户交互设置(因此,启用阅读器的PDF表单和签名仅锁定了某些字段-FieldMDP)。

这是我们需要使用的方案,在此链接中,您可以找到PDF的屏幕截图( https://onedrive.live.com/?cid=195541F2D86BFC76&id=195541f2d86bfc76%21107&v=3&authkey=%21AGtMASJ3wPHv1hU ):

  1. iText会以PDF格式填写3个字段(在我们的示例字段中,标记为“被S1锁定...”)
  2. 用户更改前一个字段(标记为“由S1锁定”)中的值,并使用批准签名(通过字段S1)对文档进行签名,该签名将锁定前三个字段(标记为“由S1锁定...”)
  3. itext填写另一个未被S1签名锁定的字段(标记为“由S2 RO锁定”)
  4. 用户显示PDF并验证签名S1后,Adobe Reader显示信息表明字段S1中的签名无效,因为尽管iText并未更改此字段的值,但字段“ Locked by S1”已更改。

这是我在类似场景中玩游戏时的观察结果:

  • 如果用户在第2步中未对iText填充的字段(带有“ Val3”)进行任何更改,只是在字段S1中签名,则签名保持有效(在下面的链接中是文件:PDF_u1s1u2_validSig)
  • 我们正在使用iText 5.4.1,但是我们也尝试了iText 5.5.5,但结果相同
  • 我们需要使用Adobe Reader11。但是,当我们在Adobe Reader 9中使用无效签名验证PDF时,可以看到签名是有效的。 我们尝试过的所有更高版本的Adobe Reader 9.5、10、11都将签名显示为无效。
  • 如果我们检查使Adobe Acrobat中的签名无效的字段值,并且将签名的修订版与具有无效签名的PDF进行比较,则此字段未标记为已更改(两个版本中的值都相同),因此我们不明白为什么它被标记为已更改。

无效和有效的PDF以及您可以在URL中找到的PDF表单的屏幕截图: https : //onedrive.live.com/redir?resid=195541f2d86bfc76!108&authkey=!AGtMASJ3wPHv1hU&ithint=folder%2cpng

感谢您提供任何可以阐明为什么第一个签名无效的输入。

  ask by Milan Sykora translate from so

本文未有回复,本站智能推荐:

1回复

如何使用iText使用XFA表单对PDF文件进行数字签名

iText发行说明提到iText版本5.4.2和5.4.3支持使用XFA表单对PDF进行签名: http://itextpdf.com/history/?branch=54&node=542 http://itextpdf.com/history/?branch=54&
5回复

使用iText(iTextSharp)填充PDF中的XFA表单字段?

我需要在PDF中填充XFA表单字段(使用Adobe LiveCycle Designer创建)。 我们正在尝试使用iText(实际上是带有C#的iTextSharp)来解析PDF,填充XFA字段,然后将修改后的PDF保存回来。 我可以通过iText找到的所有示例(很少有iTextShar
1回复

XFA表单的数字签名

我想以编程方式签署在Adobe Livecycle(这是XFA表单)中创建的PDF文档。 我知道用于处理PDF的iText库,但是还没有找到如何签名的示例。 也许它不被支持。 您知道其他可以做到这一点的Java库吗? 还是您知道如何签名? 我知道,我的问题类似于这个未解决的
2回复

使用iText检测动态XFA

我需要将预先填充的PDF / XFA表单设置为只读(因为没有输入,例如文本,复选框,单选按钮等可以更改其值)。 对于常规的AcroForms PDF和静态XFA表单,我可以通过在PdfStamper实例上调用setFormFlattening(true)来完成此操作。 对于动态XFA表单
1回复

如何通过使用iText填充XFA,使其可兼容Foxit Reader

我使用了网上提供的示例来创建一个应用程序,该应用程序能够获取XFA表单的xml结构,然后将其重新填充。 重要代码如下所示: 当我用它填写此表格时: http : //www.vzp.cz/uploads/document/tiskopisy-​​pro-zamestnavatele-h
1回复

iText-填写包含JavaScript操作的XFA表单

我的目标是用iText填写交互式PDF xfa表单。 一切正常,但不幸的是某些字段具有JavaScript操作,我无法通过fillXfaForm()方法填充它们。 我的问题是:如何以编程方式(在Java中)进行操作? 可能吗? 我可以通过启用了JS的Adobe Reader导入工具手
1回复

如何使用iText填写XFA表格?

码: 这段代码没有任何异常,一切似乎都没问题,但如果我打开填充的pdf,Adobe Reader会说出类似的话: 本文档启用了扩展功能。 此文档自创建以来已更改,并且无法再使用扩展功能。 某些字段已正确填充,但我无法对其进行编辑。 有些字段是空的。 如果我通过单击
1回复

如何使用itext从文本文件中的数据填写(动态XFA)PDF

我有一个本地PDF表单,该表单具有一个永不更改的特定模板。 由于没有返回键集,因此我将表单标识为XFA(xml)动态表单。 我正在尝试使用itext用.txt文件中包含的数据填写表单。 根据我的理解,我需要以某种方式从文本文件中获取数据并将其正确放置到.xml文件中,以便itext可以使用