使用 itext 签名后锁定文档

发布于 2025-01-13 06:25:41 字数 1072 浏览 3 评论 0原文

签署 pdf 后,我想锁定文档,因此无法添加更多签名,

我尝试像这样添加锁定:

        PdfDictionary dic2 = new PdfDictionary();
        dic2.put(PdfName.CONTENTS, new PdfString(placeHolder).setHexWriting(true));

        dic2.put(PdfName.LOCK, stamper.getWriter()
                .addToBody(new PdfSigLockDictionary(LockPermissions.NO_CHANGES_ALLOWED)).getIndirectReference());

        pdfAppearance.close(dic2);

但我收到此错误:

java.lang.IllegalArgumentException: The key /Lock didn't reserve space in preClose().

我找不到有关如何的明确示例添加这个锁,我做错了什么?我正在使用 itext 5。

编辑 1: 在预关闭中设置锁定长度,如下所示:

PdfSigLockDictionary dic3 = new PdfSigLockDictionary(LockPermissions.NO_CHANGES_ALLOWED);

HashMap<PdfName, Integer> exc = new HashMap<PdfName, Integer>();

exc.put(PdfName.LOCK, dic3.length()* 2 + 2);

pdfAppearance.preClose(exc);

我没有收到错误,购买我在我的pdf中没有看到任何变化: 无锁我想...

after signing a pdf, I want to lock the document, so no more signatures can be added,

I'm trying to add the lock like this:

        PdfDictionary dic2 = new PdfDictionary();
        dic2.put(PdfName.CONTENTS, new PdfString(placeHolder).setHexWriting(true));

        dic2.put(PdfName.LOCK, stamper.getWriter()
                .addToBody(new PdfSigLockDictionary(LockPermissions.NO_CHANGES_ALLOWED)).getIndirectReference());

        pdfAppearance.close(dic2);

but I'm getting this error:

java.lang.IllegalArgumentException: The key /Lock didn't reserve space in preClose().

I can't find a clear example on how to add this lock, what am I doing wrong? I'm using itext 5.

EDIT 1:
setting the LOCK lenght in the preclose like this:

PdfSigLockDictionary dic3 = new PdfSigLockDictionary(LockPermissions.NO_CHANGES_ALLOWED);

HashMap<PdfName, Integer> exc = new HashMap<PdfName, Integer>();

exc.put(PdfName.LOCK, dic3.length()* 2 + 2);

pdfAppearance.preClose(exc);

I get no error, buy i see no changes in my pdf:
no lock i guess...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文