【发布时间】:2019-09-01 10:56:37
【问题描述】:
我有一个用数字证书签名的 pdf。 pdf(表单域)的内容在签名后不得更改。应该允许添加签名。现在第二个人需要添加他的数字签名。之后不允许对文档进行更多更改。如何做到这一点?
我能够通过 java 和 pdfbox 创建一个 pdf,对其进行签名并使用 java 检查证书是否有效,该证书是否用于签署文档。 在stackoverflow上,我遇到了以下sn-p,它将签名添加到已经签名的pdf中,但我不知道如何实现它。
for (int i = 1; i < 4; i++)
{
load current version of the PDF;
apply the i'th signature;
save and sign as new current version of the PDF;
}
我将不胜感激如何实施上述建议。
【问题讨论】:
-
您是否尝试过源代码下载中的 CreateSignature 或 CreateVisibleSignature 示例?
-
您说您可以使用 pdfbox 签署 pdf。因此,您实现该循环的具体问题是什么?
-
话虽如此,您说无论是否允许对某些字段进行进一步更改,签名都会改变。这可能需要签名锁定字典支持,而 pdfbox 不提供开箱即用的功能,但您必须添加。
-
是的,看看 CreateSignature 解决了我的问题。现在,当我在 Acrobat 阅读器中打开我的文档时,它会显示修订版 1,通过我的字段 signatureField 和证书(通过第二个签名)锁定更改。在我的情况下,第二个签名是隐藏的,但 Acrobat reader 会检测到它。非常感谢您的帮助!