如何在 Python 中调用 lpr?
令人惊讶的是,它不在 sys 模块中。
我的目标是使用如下伪代码所示的 lpr
10*i for i in range(77):
lpr --pages(i,i+1) file.pdf
首先,我不明白你的伪代码。10*i for i in range(77):
(在这种情况下是什么意思?)
通常,您用于subprocess.Popen
运行外部命令。ActiveState 配方 511505显示了一个专门使用lpr
. 基本上,您可以lpr
像这样调用:
subprocess.Popen(['lpr', 'some_filename'])
但是:根据您的版本lpr
,可能没有选择所有页面子集的选项,或者此功能可能仅适用于例如 dvi 文件。
编辑:由于您似乎想要打印 PDF 文件的选定页面,请查看PDF 工具包。该软件似乎提供了拆分功能。此外,请确保支持直接打印 PDF 文件。您可能需要先将输入转换为 postscript(例如使用pdf2ps
)。当然,您也可以使用自动执行这些任务subprocess.Popen
。
只需从命令行调用它:
import commands
for i in range(77):
# I'm making no assumptions about lpr command syntax here.
cmd = "lpr --pages(%s,%s) file.pdf" % (2*i, 2*i+1)
commands.getoutput(cmd)
类似的东西。
我没有尝试过,但 pycups 似乎是杯子的 python 绑定。