1

如何在 Python 中调用 lpr?

令人惊讶的是,它不在 sys 模块中。

我的目标是使用如下伪代码所示的 lpr

10*i for i in range(77):              
      lpr --pages(i,i+1) file.pdf
4

3 回答 3

5

首先,我不明白你的伪代码。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

于 2009-11-26T18:06:57.180 回答
2

只需从命令行调用它:

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)

类似的东西。

于 2009-11-26T18:05:44.407 回答
0

我没有尝试过,但 pycups 似乎是杯子的 python 绑定。

http://cyberelk.net/tim/software/pycups/

于 2009-11-26T18:26:49.527 回答