Python中的Lpr模块

1 投票
3 回答
8023 浏览
提问于 2025-04-15 16:25

如何在Python中调用lpr?

这让我有点意外,因为它不在sys模块里。

我想用lpr,下面是我想要的伪代码示例:

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

3 个回答

0

我还没试过,但pycups看起来是CUPS的Python接口。

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

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)

大概就是这样。

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来自动化这些任务。

撰写回答