I have a Dell B1260dn Mono Laser Printer connected to cups. It is used for receipts.
Especially the first page in the morning takes almost a minute to print, because the printer have to warm up, it seems.
Also during the day, the startup time varies depending on how long since the last print.
I'd like to send an "Hey printer, wake up, be ready to print" command.
I have tried this:
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();
But that sends an empty page.
I've tried
$ipp->setData("");
But then nothing happens; there is not a job in the cups log.
I've not had to deal with this problem, but here are some things I would suggest looking into:
What is the actual data your script sends to the printer? How about a file with a single null character. Does that still print an empty page?
Look in the manual and see if you can change the settings for the "sleep" state of the printer. Maybe this printer supports a way to use telnet to log into it to change states of some type.
See if creating raw PostScript that sets up the printer to print something, but doesn't actually generate output. Like loading in some fonts, so it goes through the motion to do everything but actually doesn't print output. This might cause the printer to "wake up".
I do recall reading in a printer manual somewhere, where the printer had the option to set a time for it to wake up so there wasn't a delay in printing. I'm not saying this printer has this feature but it might.
How about a cron job which sends a print job for an empty page, and then immediately cancels it. With some trial and error, you can find out how long to wait between send and cancel command, for it not to really print. Then run this on an interval just shorter than the time to sleep period, or smarter, monitor the last print job and base the next cron job on that.
Normally, if the performance of the printer is more important to than energy savings, it makes sense to adjust the sleep timer of the device.
The device specifications state that the first page output times are:
It sounds like your experience is well outside of this limit. I checked the manual, and unlike some of the higher-end models, this printer has no ability to adjust the sleep, energy or timeout settings.