我需要处理大量受保护的pdf文件并使用java程序编辑它们,但我没有这些文件的密码。 有没有办法用批量解锁这些文件?
我想要像工具或java开源API这样的Windows命令。 什么是最好的解决方案?
答案 0 :(得分:17)
这些pdf文件是否要求打开密码,保护是否包含有关复制,打印,修改,文本提取等的限制?
如果是这种情况,您可以尝试使用
qpdf
用法:
qpdf --decrypt file.pdf unlocked.pdf
并且可以以批处理操作 en masse 使用,就这样
for f in *.pdf ; do qpdf --decrypt $f ${f%%.pdf}unlocked.pdf; done
答案 1 :(得分:1)
对于解密,您可以使用PDFBox,请在此处查看我的回答:https://stackoverflow.com/a/9976481/535203
我给出了一个示例代码来解密给定密码的PDF。
使用PDFBox还有一个二进制文件,请检查the usage here。
答案 2 :(得分:0)
您也可以使用iText库。
以下是示例代码:
PdfReader.unethicalreading = true;
PdfReader reader = new PdfReader(inputFile);
PdfEncryptor.encrypt(reader, new FileOutputStream(outputFile), null,
null, PdfWriter.ALLOW_ASSEMBLY | PdfWriter.ALLOW_COPY
| PdfWriter.ALLOW_DEGRADED_PRINTING | PdfWriter.ALLOW_FILL_IN
| PdfWriter.ALLOW_MODIFY_ANNOTATIONS | PdfWriter.ALLOW_MODIFY_CONTENTS
| PdfWriter.ALLOW_PRINTING | PdfWriter.ALLOW_SCREENREADERS, false);
P.S。 :使用unethicalreading
标记自行承担风险。