1

在使用 PdfWriter 类的设置加密方法时,是否可以将所有者密码设置为某个值并将用户密码设置为 null 或空?

我尝试使用类似这样的代码

 String OWNER = "test";
 PdfWriter.setEncryption(null,OWNER.getBytes(),
                        PdfWriter.ALLOW_PRINTING, PdfWriter.ENCRYPTION_AES_128);

我无需输入任何密码即可打开使用此代码生成的 PDF。但是,当我尝试打开它以使用 Adob​​e Acrobat 进行编辑时,它会以查看模式打开文档并抛出错误“这是安全文档。不允许编辑。” 错误截图: http: //dropbox.com/s/1ef551o1z0n9ug1/editerror.jpg

知道为什么这一定会发生吗?难道我做错了什么?

另外一点,

我已经生成了这个新文档

PdfWriter.setEncryption("test1".getBytes(),"test".getBytes(), 
                        PdfWriter.ALLOW_PRINTING, PdfWriter.ENCRYPTION_AES_128); 

链接:http ://dropbox.com/s/8jeia7ezervrz18/Test_Success.pdf

输入密码为“test1”后,我可以查看它,并且可以使用密码“test”对其进行编辑。当我在早期的情况下将 USER 作为 null 传递时,我不确定到底出了什么问题。

我在我的项目中使用以下一组罐子

  • itext-2.1.7.jar
  • bcmail-jdk14.jar
  • bcprov-jdk14.jar
4

1 回答 1

0
    private static String user = "";
    private static String admin = "ADMIN";      
writer.setEncryption(admin.getBytes(), user.getBytes(),
                PdfWriter.ALLOW_PRINTING, PdfWriter.ENCRYPTION_AES_128);

通过使用上述方法,您可以设置管理员密码。您的类路径设置中可能存在一些问题。用于Mavel依赖Gardle

于 2014-02-24T13:16:14.327 回答