如何使用java在数字签名PDF中添加空白页



我想在使用itext library的数字PDF末尾插入空白页,我的困惑是添加页面会使现有签名无效?谢谢你。

要把Joeri的回答放在上下文中,请查看Adobe技术白皮书《Adobe acrobat9数字签名,更改和改进》,特别是其中的"允许和不允许的更改"部分。在这里,Adobe 澄清了(如acrobat9及以上版本所见)允许对经过认证或签名的文档进行的更改,而不会使应用于该文档的签名无效。

认证文档允许的操作

已通过认证,不允许更改

允许

  • 不允许修改

不允许

  • 数字签署
  • 提供表单字段值
  • 添加或编辑注释
  • 添加表单字段
  • 更改页面内容

经过认证,允许填写表格和数字签名

允许

  • 提供表单字段值
  • 数字签署

不允许

  • 添加或编辑注释
  • 添加表单字段
  • 更改页面内容

通过注释、表格填写和数字签名认证,允许

允许

  • 添加或编辑注释
  • 提供表单字段值
  • 数字签署

不允许

  • 添加表单字段
  • 更改页面内容

已签名但未认证的文档允许的操作

允许

  • 添加签名字段(参见对已签名但未认证的文件添加签名字段的限制)
  • 添加或编辑注释
  • 提供表单字段值
  • 数字签署

不允许

  • 添加签名字段以外的表单字段
  • 更改页面内容

如你所见"更改页面内容"always在"禁止"中。类别。因为添加一个页面会改变页面内容——之后至少会有一个以前什么都没有的白页——所以这是不允许的。

(尽管这里没有明确提到,只要允许表单填充,就很可能允许实例化页面模板,因为这符合PDF标准,参见ISO 32000-1第12.8.2.2.2节。但是使用这样的页面模板至少需要在签署之前对文件进行专门的准备,而你的问题听起来好像文件没有任何准备就已经签署了…)

PS:显然,即使这些允许更改也需要以追加模式添加,即增量更新。其他任何东西都会永远破坏签名。

会的。该签名基于已签名的内容,因此如果更改了内容,该签名将不再有效。

如果你是签名者,你可以重新签署文件。

您添加的页面是否为空白无关。

最新更新