即使我可以打开文件,PDFBox也会返回isEncrypted true

Nit*_*iya 0 java pdfbox

我正在使用 PDFBox 来确定 pdf 文件是否受密码保护。这是我的代码:

boolean isProtected = pdfDocument.isEncrypted();
Run Code Online (Sandbox Code Playgroud)

我的文件属性在截图中。在这里,我isProtected= true什至不需要密码就可以打开它。

注意:该文件有文档打开密码:否和权限密码:是。

单击此处查看文件

Til*_*err 6

您的 PDF 有一个空的用户密码和一个非空的所有者密码。是的,它是加密的。这样做是为了防止人们做某些事情,例如内容复制。

它不是真正的安全;而是真正的安全。查看器软件有责任注意不允许“禁止”操作。

您可以在这里找到更长(而且有点有趣)的解释。

要查看文档访问权限,请使用PDDocument.getCurrentAccessPermission().

在 2.0.* 中,如果此调用成功,用户将能够查看文件:

PDDocument doc = PDDocument.load(file);
Run Code Online (Sandbox Code Playgroud)

如果InvalidPasswordException抛出 a,则表示需要非空密码。