我有一台连接到杯子的戴尔 B1260dn 单色激光打印机。它用于打印收据。
特别是早上,打印第一页需要将近一分钟,因为打印机似乎需要预热。
此外,在白天,启动时间会根据距离上次打印的时间长短而变化。
我想发送一个“嘿打印机,醒来,准备打印”的命令。
我尝试过这个:
require_once ('printipp/CupsPrintIPP.php');
$ipp = new PrintIPP();
$ipp->setHost("cupshost");
$ipp->setPort(613);
$ipp->setPrinterURI("/printers/printer2");
$ipp->setLog("/tmp/phpIPP", 'file', 3);
$ipp->setData(" ");
$ipp->printJob();
但这会发送一个空白页。
我试过了
$ipp->setData("");
但之后什么也没有发生;cups 日志中没有作业。
答案1
我还没有处理过这个问题,但我建议研究以下几点:
您的脚本向打印机发送的实际数据是什么?如果文件只有一个空字符,那会怎样?这是否仍会打印空白页?
查看手册,看看是否可以更改打印机“睡眠”状态的设置。也许这台打印机支持使用 telnet 登录以更改某种状态的方法。
查看是否创建原始 PostScript,设置打印机打印某些内容,但实际上不生成输出。例如加载某些字体,因此它会执行所有操作,但实际上不会打印输出。这可能会导致打印机“唤醒”。
我确实记得在某本打印机手册中读到过,打印机可以选择设置唤醒时间,这样就不会出现打印延迟。我不是说这台打印机有这个功能,但它可能有。
答案2
一个 cron 作业如何发送一个空白页的打印作业,然后立即取消它。通过反复试验,您可以找出在发送和取消命令之间要等待多长时间才能真正打印。然后以比休眠时间短的间隔运行它,或者更聪明地监视上一个打印作业并以此为基础执行下一个 cron 作业。