当前位置: 首页 > 知识库问答 >
问题:

PDFBox-在Acrobat阅读器中不可见签名有效性复选标记

欧阳洲
2023-03-14

我正在使用此作为参考向pdf添加视觉签名-https://stackoverflow.com/a/27940667/7103795

我能正确地打印细节。但pdf在Acrobat中打开时不会显示绿色勾号,尽管它写着“已签名且所有签名均有效”在签名面板中。

这是我需要的一个例子:

我怎样才能确保有效期标志出现?

我使用的是pdfBox 2.0.1版

共有1个答案

段干弘毅
2023-03-14

近十年前,文件中对签名有效性的可视化已经被弃用。Adobe Reader仅出于向后兼容性的原因支持它们,但它们从未成为iso pdf规范的一部分。

OP在一篇评论中要求提供相关文件;这个答案集中在这一点上。

在Adobe Acrobat版本6中,Adobe不再使用PDF本身提供的文档内签名有效性可视化创建PDF,请参阅数字签名外观第8页:

有效性仍然显示在文档中的签名可视化中,但用于可视化状态的图形现在由Adobe Acrobat自己生成。只有为了兼容性,旧文档才能继续使用这些自定义外观显示其自身的有效性外观。

在Adobe Acrobat 9版本中,Adobe最终不再使用文档内签名有效性可视化,参见Adobe Acrobat 9数字签名、更改和改进(第10页):

因此,由于Acrobat 9 Adobe只在签名面板中显示自己的图标,而不是文档本身,因此需要业务用户通过检查签名面板来评估签名的有效性,并相应地生成签名。

仅出于兼容性原因,具有自身有效性外观的旧文档仍会继续在文档区域内使用这些自定义外观进行显示。

2008年7月1日发布的官方PDF规范ISO 32000-1没有具体说明PDF可以为签名有效性提供可视化的任何方式。看看Adobe共享的ISO 32000-1副本,再也没有提到那些“层”n1、n3和n4。实际上根本没有提到这样的层,国际标准化组织规范期望通常的单一外观流没有变体。

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-签名字段)

 类似资料:
  • 我有PDF表单,我正在尝试用PDFBOX填充它。它可以工作,表单被填充,我用其他阅读器或浏览器打开,我可以看到值,但是当我试图在Adobe Reader中打开值消失时,我尝试了各种可能的方法来找出原因但是值不可见。 我有模板表单,我使用和填充数据,重命名字段,并将其合并到其他文档中,然后重做该过程,直到所有表单都填满。 我不确定这是否与我的代码或Adobe阅读器有关。 链接到我需要填写的PDF表单

  • 我找不到为什么Foxit PDF阅读器显示我的签名文件无效。首先,我将空白签名容器插入pdf 我发送到外部Web服务以使用合格的签名进行签名。 接下来,我使用webservice的结果对pdf进行了签名。这是外部签名容器: 这是签名代码: 并且有结果: 找不到我做错了什么。

  • 我正试图使用我们正在制作的库来制作PDF文档的时间戳。我在PDF文档中添加了一个新的部分。我为签名和包含实际签名的签名对象添加了新的注释对象,并为新部分添加了新的外部参照表。当我检查外部参照条目时,一切似乎都正常。 当我尝试在Acrobat中验证我的签名时,我收到以下错误消息“此签名中包含的信息格式存在错误(签名字节范围无效)”。 但是,当我检查字节范围时,一切似乎都是正确的。我从文档的开头到Co

  • 是否可以用开放源码软件库pdfbox提取已签名PDF的可见签名(图像)? 工作流: null 像下面这样的oop风格的东西会很棒: 找到了类PDSignature和如何签署一个PDF,但没有解决方案提取一个可见的签名作为图像。

  • 我使用下面的示例代码来读取NFC标签,但它不是多次读取标签(有时读取3次,有时读取6-7次)。在我的应用程序中,我需要连续读取nfc标签。 https://github.com/andijakl/NfcDemo

  • 我们正在制作一个网络应用程序,其功能之一是制作PaDES签名。代码太大,无法在此处共享,但工作流如下所示: PDF通过在浏览器中进行所有必要的转换来准备签名 摘要使用所选算法计算 摘要被发送到后端,如果分离的CaDES签名是使用DSS库 在后端生成的分离签名被发送回浏览器,以便插入到准备好的PDF中以制作PaDES签名 对于大多数PDF文件,该解决方案都很有效。然而,在有些文件中,Acrobat不