在Python中,如何最简单地打印到远程IPP/CUPS服务器或打印机?

10 投票
3 回答
6822 浏览
提问于 2025-04-15 13:43

我有一个PostScript文件,想把它打印到一个支持IPP的设备上(或者CUPS服务器)。我想知道,最简单的代码和依赖项是什么,能让我做到这一点。

使用LPR或者libcups会让我遇到很多跨平台的依赖问题。所以我最开始的想法是实现一个IPP的简化版本(这是CUPS和许多现代打印机使用的协议),因为“它其实就是扩展的HTTP”。但是不幸的是,做一个IPP客户端的代码要比几行多得多,而且到目前为止,我还没有找到一个专门用于打印而不是管理打印服务器的IPP客户端实现。

我更希望能用Python来解决这个问题,但如果有其他动态语言的解决方案我也会很高兴。

3 个回答

1

pycups是一个很棒的工具;这里有一段使用它的代码示例,包括设置一些选项,比如适应页面大小。

另外,还有一些代码可以用来使用LPR协议。

直接与打印服务器进行沟通要比使用依赖于平台的命令行工具要好得多。

1

在GitHub上有一个用于CUPS的Python封装工具叫做ipptool

这个Python库看起来也很有前途:

你可能还想看看这个回答

1

你需要把远程打印机添加到CUPS里:

lpadmin -p printername -E -v //IPADDRESS/spool -m driver.ppd

这里的driver.ppd是用来打印的驱动程序

备注:如果打印机之前已经设置好,这个方法也可以用于程序访问。

撰写回答