CUPS 堵塞打印机并导致作业停滞?

CUPS 堵塞打印机并导致作业停滞?

我们有 2 台网络连接的 HP LaserJet 400 M401dne,我们需要它们直接从服务器命令行打印发票 PDF。

我已将打印机添加到 CUPS,并创建了一个包含这两台打印机的打印类(发票)。

然后我设置了一个 cron 作业,它会检查目录中的发票文件,如果发现任何发票文件,就会将其发送去打印,然后移走这些文件。

lpr -P 发票 -# 4 {pdf 文件列表}

然而,似乎只要同时需要打印 4-5 张以上的发票,就会发生一些事情——打印机对 Cups 没有响应,并且 Cups 作业永远停留在队列中,不会打印也不会取消打印。

与此同时,打印机仍然接受来自并行使用的 Windows 打印系统的打印输出。

似乎有效的是取消 cups 中的所有打印作业,硬件循环打印机并执行 cupsdisable/cupsenable(不确定是否需要最后一个)。

然而,应该有一些解决方案,以便 CUPS 在准备好接受作业之前不会将其发送到打印机。

可能是什么问题?

也许我需要选择不同的打印协议?目前我使用 CUPS 管理网页建议的协议:

dnssd://HP%20LaserJet%20400%20M401dn%20(636536)._ipp._tcp.local/?uuid=564e4835-5030-3038-3636-c8cbb8636536

但也许我应该使用 IPP 或其他协议?如果是这样,我如何才能找出 HP 打印机的 IPP 队列名称?

或者也许我应该使用不同的打印机驱动程序而不是:HP LaserJet 400 M401dne Postscript(推荐)?

UPD:lpstat -v 输出:

device for invoices: ///dev/null
device for default: ///dev/null
device for HP_LJ_PRO_400_1: dnssd://HP%20LaserJet%20400%20M401dn%20(072E87)._ipp._tcp.local/?uuid=564e4633-4430-3134-3232-6c3be5072e87
device for HP_LJ_PRO_400_2: dnssd://HP%20LaserJet%20400%20M401dn%20(636536)._ipp._tcp.local/?uuid=564e4835-5030-3038-3636-c8cbb8636536
device for HP_HP_LaserJet_P2055dn: dnssd://HP%20LaserJet%20P2055dn%20%5B0E39EF%5D._pdl-datastream._tcp.local/
device for Ricoh_1515: lpd://192.168.100.33/lp

答案1

我建议在端口 9100 上使用套接字打印:

device for invoices: socket://172.16.2.40:9100

轻松配置:

# lpadmin -p invoices -v socket://172.16.2.40:9100 -E 

答案2

到目前为止,似乎最好的选择是使用 ipp://printer-ip/ 来添加这台特定的打印机。

使用通用的 HP LJ PCL6 驱动程序(网络上某些地方推荐 PCL5 作为在 HP 打印机上打印 PDF 的最佳驱动程序)出现了打印机不接受复制参数(lpr -# 参数)的问题,因此我切换回 CUPS 推荐的 Postscript 驱动程序。

当使用 socket:// 接口时,仍然存在一些问题,打印作业不再接受作业并且它们挂在队列中并处于“连接到打印机”状态,并且需要手动重新启动 cups 服务器才能解决此问题。

切换到 ipp 后,这种情况就不再发生。

相关内容