【问题标题】:unlock protected pdf files解锁受保护的pdf文件
【发布时间】:2012-02-03 16:33:32
【问题描述】:

我需要处理大量受保护的 pdf 文件并使用 java 程序对其进行编辑,但我没有这些文件的密码。 有没有办法批量解锁这些文件?

我想要一个类似工具或 java 开源 api 的 windows 命令。 什么是最好的解决方案?

【问题讨论】:

  • 最好的解决方案是请求拥有文件内容的人的支持——这可能是密码保护他们的人。
  • 只要 PDF 文件只有所有者密码而不是用户密码(您仍然可以查看它们),那么文件中就没有任何加密内容。这些限制仅由查看器应用程序施加,PDF 根本没有受到真正的保护。如果您有自己的编辑应用程序,则可以忽略保护。

标签: java pdf batch-file


【解决方案1】:

这些pdf文件是否要求打开密码,或者保护包含对复制、打印、修改、文本提取等的限制?

如果是你的情况,你可以试试

qpdf

用法:

qpdf --decrypt file.pdf unlocked.pdf

并且可以在批处理操作中使用en masse,以这种方式

for f in *.pdf ; do qpdf --decrypt $f ${f%%.pdf}unlocked.pdf; done

【讨论】:

  • 我的 pdf 文件不要求输入密码。我的限制是关于复制、打印、修改,我想要一个与 qpdf 工作相同的 java 库。
  • 是的,这是 PDFUnlock 最好的免费和开源替代品!
【解决方案2】:

对于解密,你可以使用PDFBox,在这里查看我的答案:https://stackoverflow.com/a/9976481/535203

我给出了一个示例代码来解密一个给定密码的 PDF。

还有一个二进制文件可以使用 PDFBox 执行此操作,请查看 the usage here

【讨论】:

    【解决方案3】:

    您也可以使用 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);
    

    附言:使用unethicalreading 标志需要您自担风险

    【讨论】:

    • 新的pdf仍然不允许提取页面
    猜你喜欢
    • 2013-02-22
    • 2014-12-24
    • 1970-01-01
    • 1970-01-01
    • 2021-03-28
    • 2015-08-11
    • 1970-01-01
    • 1970-01-01
    • 2020-09-23
    相关资源
    最近更新 更多