我一直致力于在PDF上设置密码以防止复制/粘贴并允许打印,添加水印并设置所有者密码以防止进一步更改.
一切都按预期运作良好,没有问题.
然后我免费下载了15天pdf清除工具,a-pdf.眨眼间它会删除所有保护,无论密码的复杂程度如何(尝试使用50个字符长度的各种字符).
我看到itextPDF中还有其他方法来加密文档.我使用了以下内容:
File f = new File("C:/TEMP/zip/waterMarked.pdf");
String hardPassword = "D 5BaIZQ@ CqAk+NQCW)7Dkgb@i&02ifu!2TMX*d 0TGK(j(Kq";
byte[] hardPasswordByte = hardPassword.getBytes();
PdfReader reader = new PdfReader("C:/TEMP/zip/Original_document-9.pdf");
FileOutputStream out = new FileOutputStream(f);
PdfStamper stamp = new PdfStamper(reader, out);
//first argument is the user password. If set to something it asks for password when opening file, not wanted.
stamp.setEncryption(null, hardPasswordByte, PdfWriter.ALLOW_PRINTING, true);
//do stuff on the stamper, save file.
Run Code Online (Sandbox Code Playgroud)
有谁知道从Java代码保护PDF文档的更好方法?