是否可以通过 Python 脚本执行 QPDF

Is it possible to execute QPDF through Python script

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

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

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

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

这就是我在 Windows 10:

中的做法
  1. 下载 QPDF,解压缩文件夹并保存在您 PC 上的某个位置。我把文件夹放在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"])

使用pikepdf lib which is based on QPDF and referenced in the QPDF manual.

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

import pikepdf

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

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