With the help of Claude, I created an IPP Everywhere printer driver and IPP transport for Haiku. I am using this successfully in my Haiku installation, so making it available for testing.
I saw that in the code the current stock IPPTransport was not that far to be ready: mostly a 64bits issue. Would you mind if I push changes in Haiku IPPTransport add-on to fix them?
And BTW, I’ve now reviewer permissions on HaikuArchives/PDFWriter, if you’re still interested about your PR there…
The one adding a setup script to auto create a “Save as PDF” printer on Haiku, to be used I guess with a modified HaikuPorts PDFWriter recipe to run that script at package installation.
Regarding the default max page value, yeah, that’s bad UX indeed.
It shows it was made in the early years of BeOS/OpenBeOS, when we were already happy that such feature could exists, whatever the user interface flaws it has.
Should be empty by default, I guess, except if at this stage the PrintJob has already the total pages value available, which I don’t think it has yet.
I’m not sure updating PDFWriter is the way to go these days, I think a rewrite using more modern PDF renderer lib would be a better idea.
Thank you for confirming. I am adding these test results to the README for future reference.
Yeah, the USB connector in my Epson printer is not the most common one. Anyway, no need to sweat it.
No worries!
The good old days!
Yes, empty by default should fine. Or it could be a single field with a “1 - 10” placeholder that disappears when clicking on the field. I am not a UI expert, though…
On Haiku, create a printer queue, select USB transport (the printer name shows up as expected in the list of USB transport available ports), and IPP Everywhere driver) .
Print a Test Page
Alas, turns out my printer doesn’t support IPP over USB, only over network. In fact, when you enable USB connection, the firmware actually reboot (you can’t have both at the same time), in USB mode it expect classic and Epson native ESC/P print data.
So let me told you that when I saw on the first page “RaS2PwgRaster” printed followed by a lot of garbage text, I cancel it quickly
Thank you for testing, and sorry for the wasted paper and ink
That happened because you chose USB as the transport. For the driver to work over IPP-USB, you have to choose IPP (fixed) as the transport, not USB. (I thought it was mentioned in the README, but I have to admit it is confusing).
I will add a check to avoid this from happening, and will change the transport name to IPP (network/USB) to make it clearer to the user what transport they need to choose.
Just released 0.2.3 (test build) with the following improvements:
Transport check added to avoid pairing the driver with Haiku’s raw transports, which can result in garbage text being printed. Transport renamed to “IPP (network or USB)” to make the right transport choice more obvious in the UI.
May I suggest to follow the recommandation of IPP Everywhere here:
in case both PWG-Raster and URF is supported, the client should select PWG-Raster, and fallbackto URF only if the PWG-Raster print job is rejected by the printer.
PWG-Raster is more featured. And an open standard, while URF was reverse engineered (and some fields in the pages header are still not documented by Apple…).
I’m full to support both, but let’s select by default the open standard one. Printers supporting only URF are very rare, anyway.
The Xerox Phaser 3140, AFAICT, has only USB connectivy. And is not IPP Everywhere compatible. It supports only a specific SPL language it seems.
We don’t have printing driver for this specific language.
CUPS and Ghostscript app, available on HaikuDepot, seems to have, via a “sDEVICE=splix” filter seems to be able to generate a print “file”, but from there you will no way to send to the printer anyway.