我们有两个连接HP LaserJet 400 M401dne的networking,我们需要他们直接从服务器命令行打印发票PDF。
我已经将打印机添加到CUPS,并创build了一个包含这两台打印机的打印类(发票)。
然后,我设置了一个cron作业,它检查发票文件的目录,并在find任何文件时将其发送出去,然后移走这些文件。
lpr -P发票 – #4 {pdf文件清单}
然而,似乎每当有超过4-5张发票同时打印时,发生了一些事情 – 打印机对杯子没有反应,杯子的工作永远停留在队列中,而不是打印和不取消打印。
同时打印机还接受来自Windows打印系统的打印输出,并行使用打印机。
什么似乎工作,是取消所有打印作业的杯子,硬件循环打印机,并做cupsdisable / cupsenable(不知道是否最后需要)。
但是,应该有一些解决scheme,以便CUPS在准备接受它们之前不会将作业发送到打印机。
可能是什么问题?
也许我需要select不同的打印协议? 目前我使用的是CUPSpipe理员网页所搜集的内容:
dnssd:// HP%20LaserJet%20400%20M401dn%20(636536)._ipp._tcp.local / UUID = 564e4835-5030-3038-3636-c8cbb8636536
但也许我应该使用IPP或其他协议? 如果是这样,我怎样才能find惠普打印机的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
我build议在端口9100上使用套接字打印:
device for invoices: socket://172.16.2.40:9100
易于configuration:
# lpadmin -p invoices -v socket://172.16.2.40:9100 -E
到目前为止,似乎最好的select是使用ipp:// printer-ip /来添加这个特定的打印机。
使用通用的HP LJ PCL6驱动程序(推荐PCL5作为在HP打印机上打印PDF的最佳驱动程序)导致打印机不接受复制参数(lpr – #参数)的问题,所以我切换回CUPS推荐的Postscript这些驱动程序。
当使用socket://接口时,打印作业仍然有一些打嗝不再接受作业,并且他们挂在“连接到打印机”状态的队列中,并且需要手动重新启动cups服务器才能消失。
切换到ipp后,这没有发生。