例如,我在 CUPS 上成功安装了“HP 1020 LaserJet”本地 USB 打印机。
它使用一个连接。
如果我购买另一台 HP 1020 LaserJet 打印机,它无法打印,我必须修改打印机并更改其连接。为什么?
我怎样才能避免这种情况?
我知道在同一台计算机上使用相同类型的打印机是不合逻辑的,但这就是我的环境。
如何使 CUPS 对相同类型、型号、制造商等的所有打印机使用相同的连接?
谢谢你!!!
编辑:
我发现通过配置或任何其他标准方式这是不可能的。
唯一的办法就是找到一个好的解决方法。
答案1
修复方法在 UDEV 规则中。
因为通过标准方式这是不可能的。
您只需创建一个 UDEV 规则来检测打印机添加,然后运行 lpadmin -p PRINTERNAME -v CONNECTION?serial=
因此打印机将自动重新配置以使用另一个连接。
PS:如果有人给我正确的指导,我会给300分。我希望我现在能拿回我的 300 :D
答案2
在开发 Kiosk 应用程序时,我的树莓派也遇到了同样的问题。我按照可能的步骤找到了一个可能的解决方案(在本例中,我使用的打印机是 CUSTOM TG2460):
- 运行
lpinfo -v
它会返回连接的设备列表。
network https
file cups-brf:/
direct vnc:/
network ipp
network beh
network ipps
network socket
network lpd
network http
direct hp
direct usb://CUSTOM%20SPA/TG2460-H?serial=TG2460-H_NUM:_0
direct hpfax
network dnssd://HP%20LaserJet%20200%20color%20M251n%20(E9A2D9)._ipp._tcp.local/?uuid=564e4333-4230-3339-3439-a0d3c1e9a2d9
network dnssd://XEROX%20WorkCentre%203335%20(XRX9C934E79F15F)._printer._tcp.local/
network socket://192.168.10.12
network socket://192.168.10.123
network ipp://VodafonePS.local:631/ipp/print
network ipp://NPIE9A2D9.local:631/ipp/print
- 过滤包含所需打印机的行,并使用
grep
和提取设备 URIcut
。
lpinfo -v | grep usb://CUSTOM | cut -d ' ' -f 2
>>> usb://CUSTOM%20SPA/TG2460-H?serial=TG2460-H_NUM:_0
- 将 URI 添加到现有打印机,更新 CUPS 条目
lpadmin -p PRINTER_NAME -v usb://CUSTOM%20SPA/TG2460-H?serial=TG2460-H_NUM:_0
所有这些都可以概括为这一行:
lpadmin -p PRINTER_NAME -v $(lpinfo -v | grep usb://PRINTER_MODEL | cut -d ' ' -f 2)
然后我在每次重新启动时运行该命令。如果连接了新打印机,用户必须重新启动自助服务终端。我认为您可以轻松地将其绑定到 UDEV 规则,并在您想要交换的打印机上发生更改时运行。