使用qpdf,您可以像这样简单地从pdf中删除限制/加密:
qpdf --decrypt infile outfile
我想对Java中的PDFBox做同样的事情:
PDDocument doc = PDDocument.load(inputFilename);
if( doc.isEncrypted() )
{
//remove the encryption to alter the document
}
我已经使用StandardDecryptionMaterial进行了尝试,但是我不知道所有者密码是什么。 qpdf如何做到这一点?
样本文档:https://issues.apache.org/jira/secure/attachment/12514714/in.pdf
最佳答案
这是您需要做的。受到PDFBox WriteDecodedDoc工具的启发。您可能需要包括充气弹药罐(http://www.bouncycastle.org/latest_releases.html)
if (doc.isEncrypted()) {
try {
doc.decrypt("");
doc.setAllSecurityToBeRemoved(true);
}
catch (Exception e) {
throw new Exception("The document is encrypted, and we can't decrypt it.", e);
}
}