我需要处理大量受保护的pdf文件并使用java程序进行编辑,但是我没有这些文件的密码。 有什么办法可以用批处理解锁这些文件吗?解锁受保护的pdf文件
我想要一个Windows命令,如工具或Java开源API。 什么是最佳解决方案?
我需要处理大量受保护的pdf文件并使用java程序进行编辑,但是我没有这些文件的密码。 有什么办法可以用批处理解锁这些文件吗?解锁受保护的pdf文件
我想要一个Windows命令,如工具或Java开源API。 什么是最佳解决方案?
是要求打开密码的这些pdf文件,还是保护包含对复制,打印,修改,文本提取等方面的限制吗?
,如果这是你的情况,你可以用
qpdf尝试
用法:
qpdf --decrypt file.pdf unlocked.pdf
,并且可以在一个批次中使用操作集体,这样
for f in *.pdf ; do qpdf --decrypt $f ${f%%.pdf}unlocked.pdf; done
在解密时,您可以使用PDFBox,看到我的答案在这里:https://stackoverflow.com/a/9976481/535203
我给一个示例代码解密鉴于其密码的PDF文件。
还有一个与PDFBox一起使用的二进制文件,请检查the usage here。
你也可以使用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
标志自负风险。
最好的解决方案是向拥有文件内容的人请求支持 - 那可能是密码保护他们的人。 – mah 2012-01-05 20:44:20
只要PDF只有一个所有者密码而不是一个用户密码(您仍然可以查看它们),那么文件中没有任何加密。这些限制只能由查看器应用程序强制实施,并且PDF完全不受保护。如果您拥有自己的编辑应用程序,则可以忽略该保护。 – Alasdair 2012-01-06 01:04:36