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

如何使用java在数字签名pdf中添加空白页?,java,pdf,itext,digital-signature,Java,Pdf,Itext,Digital Signature,我想使用itext-library在数字PDF的末尾插入空白页。我的困惑是添加页面会使现有签名无效吗? 谢谢。是的,会的。签名基于已签名的内容,因此如果更改内容,签名将不再有效 如果你是签名者,你可以在文件上再签名 您添加的页面是否为空白无关紧要。要将Joeri的答案放到上下文中,请查看Adobe技术白皮书,特别是其中的“允许和不允许的更改”部分。Adobe在此澄清允许的更改(如Acrobat 9及以上所示)可对经认证或签署的文件进行认证,而不会使应用于该文件的签名无效 认证文件的允许操作 已认

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

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

如果你是签名者,你可以在文件上再签名


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

要将Joeri的答案放到上下文中,请查看Adobe技术白皮书,特别是其中的“允许和不允许的更改”部分。Adobe在此澄清允许的更改(如Acrobat 9及以上所示)可对经认证或签署的文件进行认证,而不会使应用于该文件的签名无效

认证文件的允许操作

已认证,不允许更改

  • 允许
  • 不允许更改
  • 不允许
  • 数字签名
  • 提供表单字段值
  • 添加或编辑批注
  • 添加表单字段
  • 更改页面内容
通过表格填写和数字签名认证

  • 允许
  • 提供表单字段值
  • 数字签名
  • 不允许
  • 添加或编辑批注
  • 添加表单字段
  • 更改页面内容
经批注、表格填写和数字签名认证,允许

  • 允许
  • 添加或编辑批注
  • 提供表单字段值
  • 数字签名
  • 不允许
  • 添加表单字段
  • 更改页面内容
允许对已签名但未经认证的文档执行操作

  • 允许
  • 添加签名字段(请参阅向已签名但未经认证的文档添加签名字段的限制)
  • 添加或编辑批注
  • 提供表单字段值
  • 数字签名
  • 不允许
  • 添加签名字段以外的表单字段
  • 更改页面内容
如您所见,“更改页面内容”始终属于“不允许”类别。当添加一个页面改变页面内容时——之后至少有一个白色页面,而以前什么都没有——这是不允许的

(尽管此处未明确提及,但只要允许填写表单,也很可能允许实例化页面模板,因为这符合PDF标准,请参见第12.8.2.2.2节。但是使用此类页面模板至少需要在签名前对文档进行特别准备,您的问题听起来像文件已签署,无需任何此类准备……)


PS:显然,即使是这些允许的更改也需要以追加模式(即增量更新)添加。其他任何操作都会永久破坏签名。对于某些背景,请参见此操作。

@NK123这不重要。有关允许的更改列表,请参见MKLs-answer。基本上不允许对内容进行任何操作。只是添加:如果在追加模式中添加空白页,则不修改签名的字节范围,因此从密码视图中签名是正确的。另一个问题是Adobe从MKL解释的AcROBAT版本9中添加的不允许的更改。因此Adobe将认为此签名无效。