我正在使用此作为参考 - https://stackoverflow.com/a/27940667/7103795
为pdf添加视觉签名我能够正确打印细节。但是,在Acrobat中打开时,pdf不会显示绿色勾号,尽管它是“已签名且所有签名都有效”。在签名面板中。
这是我需要的一个例子:
如何确保出现有效性标志?
我正在使用pdfBox版本2.0.1
答案 0 :(得分:5)
近十年前已弃用签名有效性的文档内可视化。 Adobe Reader仅为了向后兼容性而支持它们,但它们从未成为iso pdf规范的一部分。
评论中的OP询问了关于此的文档;这个答案侧重于此。
在Adobe Acrobat第6版中,Adobe放弃了创建PDF,其中包含PDF本身提供的文档内签名有效性可视化,参见Digital Signature Appearances第8页:
有效性仍显示在文档中的签名可视化中,但用于可视化状态的图形现在由Adobe Acrobat本身生成。仅对于兼容性,使用这些自定义外观继续显示具有其自身有效外观的旧文档。
在Adobe Acrobat第9版中,Adobe最终放弃使用文档内签名有效性可视化,参见Adobe Acrobat 9 Digital Signatures, Changes and Improvements第10页:
因此,由于Acrobat 9 Adobe仅在签名面板中显示其自己的图标,而不是文档本身,并且需要通过检查签名面板并相应地生成签名来评估业务用户的签名有效性。
仅出于兼容性原因,仍然会继续使用文档区域内的自定义外观显示具有自己的有效外观的旧文档。
2008年7月1日 st 的官方PDF规范ISO 32000-1没有规定PDF可以为签名有效性提供可视化的任何方法。看看the copy of ISO 32000-1 shared by Adobe,没有提到那些"层" n1 , n3 和 n4 了。实际上根本没有提到这样的层,ISO规范期望通常的单一外观流没有变体。
PAdES第6部分(ETSI TS 102 778-6 V1.1.1关于"电子签名的可视化表示")最终需要
符合签名处理程序不得在页面内容中显示签名验证的结果。
(第6节 - AdES签名验证的直观表示)
因此,通过添加这些"层" n1 , n3 和 n4 到PDF中的签名,您强制Adobe Reader充当不符合PAdES的签名处理程序根据您的特定安全环境,成为一名表演者。
根据更新的PDF规范ISO 32000-2,禁止签名有效性的文档内可视化:
PDF处理器不得将签名的验证状态(例如传递的复选标记或失败的X)合并到签名字段的外观中。
(ISO 32000-2第12.7.5.5节 - 签名字段)