题
如何在Python中调用lpr?
它不在sys -module中,这是令人惊讶的。
我的目标是使用伪代码
所示的lpr10*i for i in range(77):
lpr --pages(i,i+1) file.pdf
解决方案
首先,我不明白你的伪代码。 ( 10 * i for i in range(77):
在这种情况下是什么意思?)
通常,您使用 subprocess.Popen
运行外部命令。 ActiveState recipe 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绑定。
不隶属于 StackOverflow