我正在使用 itext 将文本文件转换为 pdf 并使用如下密码对其进行加密:
writer.setEncryption(PdfWriter.ENCRYPTION_AES_128, finalpass, finalpass, PdfWriter.AllowPrinting);
但其他属性已启用
我只需要允许打印,其他不允许
环顾四周后,我想出了解决我自己问题的方法,并认为我应该分享它,以便如果有人遇到同样的问题,可以将其作为参考:
我的线路:
writer.setEncryption(PdfWriter.ENCRYPTION_AES_128, finalpass, finalpass, PdfWriter.AllowPrinting);
实际上是问题。
所有者密码和用户密码相同,因此当用户输入密码时,由于两个密码相同,因此 Pdf 文档也接受他/她作为所有者。我通过像这样更改第二个密码克服了这个问题:
writer.setEncryption(PdfWriter.ENCRYPTION_AES_128, finalpass, "TheOwnerPassword", PdfWriter.AllowPrinting);
因此,当用户输入他的密码时,Pdf 文档会打开,但他只能访问打印属性,而其他属性则被禁用。
感谢那些试图提供帮助的人。你的想法很有用。