4

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

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

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

4

2 回答 2

7

感谢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"])
于 2016-11-15T22:53:23.177 回答
1

使用基于 QPDF并在QPDF 手册中引用的pikepdf lib 。

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

import pikepdf

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

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

于 2021-12-19T06:41:39.433 回答