如何在java中检查pdf文件是否可编辑(受保护)

时间:2015-09-03 23:38:34

标签: java pdf adobe itext pdfbox

给定pdf文件,是否可以确定该文件在Java中是否可编辑? PDDocument.getCurrentAccessPermission().isReadOnly()不起作用。

1 个答案:

答案 0 :(得分:1)

在1.8版本中,当使用“旧”解析器时,您需要先调用openProtection(),因为这些文件是使用空密码“加密”的:

if (doc.isEncrypted()
{
    doc.openProtection(new StandardDecryptionMaterial(""));
}

然后你可以打电话

doc.getCurrentAccessPermission().isReadOnly()

AccessPermission类中的任何其他方法。

或者,使用“新”非顺序解析器加载PDF:

PDDocument doc = PDDocument.loadNonSeq(new File(...), null);

然后doc.getCurrentAccessPermission().isReadOnly()也可以被调用。