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

标签 java pdfbox

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

boolean isProtected = pdfDocument.isEncrypted();

我的文件属性在屏幕截图中。 在这里,我得到 isProtected= true 即使我可以在没有密码的情况下打开它。

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

click here to view file

最佳答案

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

这不是真正的证券;查看器软件有责任确保不允许进行“禁止”操作。

您可以找到更长(而且有点有趣)的解释 here .

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

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

PDDocument doc = PDDocument.load(file);

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

关于java - 即使我可以打开文件,PDFBox也会返回isEncrypted true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39571878/

相关文章:

java - 使用 PDFBox 2.0.0 签署加密的 PDF 文档

java - 使用 PDFBox 验证 pdf 文件中 PDSignature 的字节范围

java - Apache PDFBox 旋转 PDImageXObject

Java throttle

java - 提高 JNA 性能

java - JTextField 改变边框

java - 将 PDFBox 中的行附加到现有页面时坐标错误

Java图像缩放

java - 对于放置在 Android 应用程序 Assets 文件夹中的文件,JNI C 代码中的 fopen 失败

java - 在 PDFBox 中将文本样式设置为带下划线