【问题标题】:Is it possible to execute QPDF through Python script是否可以通过 Python 脚本执行 QPDF
【发布时间】:2017-03-29 21:42:46
【问题描述】:

我正在编写一个处理 PDF 文件的 python 脚本,尽管其中一些包含将使用限制为仅打印的加密,我必须在处理它们之前手动将其删除。

为此,我一直在手动使用QPDF 在运行脚本之前删除对单个 PDF 文件的这些限制(qpdf 的命令非常简单......在命令提示符内 -> qpdf --decrypt input.pdf 输出.pdf)

我的问题是 - 不是手动执行此操作,是否可以在我的 Python 脚本中执行 QPDF 可执行文件并运行命令?我还没有找到任何专门用于控制 QPDF 的 python 模块,所以我不抱太大希望。

【问题讨论】:

标签: python pdf qpdf


【解决方案1】:

使用 pikepdf 库,即 based on QPDF 并在 QPDF manual 中引用。

pip install pikepdf(pip 或 pip3 取决于您系统的默认设置)

import pikepdf

with pikepdf.Pdf.open('input.pdf', password='passwd') as pdf:
    pdf.save('output.pdf')

如果密码只是一个空字符串,可以省略密码参数,它仍然会将输出的pdf文件保存为无密码的东西。

【讨论】:

  • 感谢分享。当我在 2016 年问这个问题时,我认为 pikepdf 不存在。对于任何搜索此问题的人,我已将其更改为接受的答案
【解决方案2】:

感谢furas 为我指明了正确的方向。

这就是我在 Windows 10 中的做法:

  1. 下载QPDF,解压文件夹并保存在您的电脑上。我将文件夹放在 C:\qpdf-5.1.2 中。文件夹里面是 bin\qpdf.exe。
  2. 将环境变量设置为 C:\qpdf-5.1.2\bin。要在 Windows 10 中设置环境变量,请转到系统属性 > 高级 > 环境变量。突出显示 PATH,单击编辑,然后单击新建并粘贴到第 2 点中的目录的路径。

设置完成后,您可以在命令提示符和 Python 中引用“qpdf”。

import subprocess
subprocess.run(["qpdf", "--decrypt", "C:/qpdf-5.1.2/bin/input.pdf", "C:/qpdf-5.1.2/bin/output.pdf"])

【讨论】:

    猜你喜欢
    • 2021-05-22
    • 2013-04-24
    • 2021-06-14
    • 2015-10-14
    • 1970-01-01
    • 1970-01-01
    • 2012-02-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多