我看过很多博客文章,描述了使用 CUPS 向 iOS 设备提供非 Airprint 打印机的过程。然而,我已经查遍了一切,试图找出是否有人知道如何打印到内置 Airprint 服务器的打印机。
特别是,我有一台 Brother HL-2340DW,它在 iDevices 上表现出色。如果我对 Airprint 的理解正确的话,iOS 不需要知道任何特定的信息来打印到所述打印机。它或多或少会通过 IPP 在打印机上生成 PDF,然后打印机完成其工作。我在 iOS 中获得的唯一配置选项是是否需要双面打印(默认为长边,或打印机的默认双面选项)以及纸张尺寸(即 letter 与 a4)。
我不想做的是安装 Brother 的二进制驱动程序(在 OpenBSD 上不行),这样我就可以说“BR-3”或他们使用的任何专有打印机控制语言。虽然我知道他们的驱动程序会给我在打印选项方面带来更大的灵活性,但实际上我将使用这台打印机的默认设置。从这个意义上说,更有限的 Airprint 功能是完美的。
有没有人成功获得各种 UNIX 打印系统(最好是 CUPS)之一来将打印作业发送到 Airprint 打印机?由于 IPP Everywhere 似乎仍然是一个梦想,因此支持 Airprint 的打印机似乎是基本打印支持的一个足够好的目标,不是吗?还是 Airprint 协议比我想象的更专有/更混乱?
答案1
AirPrint 基本上是 IPP + Bonjour +image/urf
光栅图像格式。为了获得 AirPrint 兼容认证,打印机必须至少支持该image/urf
格式……但也没有什么可以阻止它接受和发布其他格式。
看:https://www.finnie.org/2010/11/13/airprint-and-linux/和https://wiki.debian.org/AirPrint
从开源 CUPS 打印到 AirPrint 打印机只需使用 Bonjour mDNS 发现打印机的 IP 地址、IPP 端口和基本功能,并假设 CUPS 至少支持一种打印作业格式,则应该只是工作。
令人恼火的是,URF 格式除了一项专利,但是 CUPS 已经包含了一个逆向工程urftopdf
解码器。然而,由于专利的原因,生产和分发免费的 URF 格式编码器可能在法律上很棘手 - 并且由于某些 AirPrint 打印机可能只支持 URF,因此有必要提供“完整”AirPrint 支持。
答案2
在 ubuntu 上: sudo apt-get install Printer-driver-all
这将安装所有开源过滤器包装器和 PPD。我用3台打印机进行了测试,“添加打印机”后它们可以打印,无需下载任何专有软件。
我不知道 OpenBSD 是否适用,但如果您正在运行 CUPS,请为您的 Brother HL-2340DW 尝试以下操作:
搜索 Brother-HL-2170W-hpijs-pcl5e.ppd
我还尝试向驱动程序提供原始 PDF(使用 CUPS-PDF.ppd),但它不适用于我的 AirPrint 打印机。
答案3
我使用此命令设置我的 Brother 打印机(HL-L2370DN,看起来像是问题中的打印机的版本)
lpadmin -p Brother -v ipp://xx.xx.xx.xx:631/ipp/print -m everywhere
其中Brother
是任意名称,xx.xx.xx.xx
是打印机的 IP 地址。我为我的打印机分配了一个静态 IP 地址,这样就不用担心 mDNS、发现等问题了。之后,打印机在不同程序中的打印中变得可见。
相关的 CUPS 文档在这里:https://www.cups.org/doc/admin.html和https://www.cups.org/doc/network.html。
我在搜索如何设置我的 Brother 打印机时遇到了这个问题,结果发现“AirPrint”有点错误。网络打印机应支持 IPP 协议,您可以通过传递ipp://
uri 和来选择该协议-m everywhere
。也许在提出问题时这不起作用,但现在应该考虑到 AirPrint 基于 IPP。