[Call for testers] New IPP Everywhere driver & IPP transport for Haiku

Hello,

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.

The hpkg package can be downloaded from:

ipp_everywhere-0.1-1-x86_64.hpkg

Sources available at:

Would love to hear success stories, but if you find issues while testing, report them at:

Enjoy!

6 Likes

Forgot to mention. Here is a list of IPP Everywhere printers, in case you want to check against your printer.

3 Likes

Works fine with my Epson ET-4956 printer.

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…

3 Likes

Hi @phoudoin

That’s great!

Not at all! Please do so.

I am not sure I follow you. Which PR are you referring to?

2 Likes

Which PR are you referring to?

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.

That’s not my PR. :sweat_smile:

If this is the one…

..then it must be Kevin’s.

By the way, why does the “To” field in the Job setup window show such a high value (placeholder?) by default?

Quick question: did you test it over USB or a network connection?

Network (wifi, to be precise).

I may test it over USB if you want it, but I have to find the correct USB cable for that first :wink:

1 Like

Oh, my bad, I confound you indeed with Kevin.

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. :sweat_smile:

No worries!

The good old days! :wink:

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… :sweat_smile:

Thank you for taking the time to test and report!

Ok, did the test in USB mode:

  • Enable USB interface on the printer
  • 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 :slight_smile:

So, I guess you’ll have to find someone owning a printer which does support IPP over USB for that test.

Hi @phoudoin

Thank you for testing, and sorry for the wasted paper and ink :disappointed_face:

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.

I know it works :wink:
I tested it on my Epson printer. :grin:

Howdy,

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.

Warning when the wrong transport is not selected.

  • Printer detection window UI polished: “Add printer” button, enabled only with a selection or a typed URL; “Search again” resets the selection.

The new version hpkg package can be downloaded from here:

ipp_everywhere-0.2.3-1-x86_64.hpkg download

Let me know how it goes!

3 Likes

Howdy,

New release available with the following changes:

  • URF (Apple raster) support
  • “Raster format” menu in the add-printer dialog so the user can choose between PWG Raster or URF.

New hpkg package available from here:

Enjoy!

3 Likes
  1. mDNS too?!? :face_with_peeking_eye: :man_mage:

Amazing work… do you consider it print quality/configuration at the level of macOS yet?

1 Like

Thank you!

I don’t use macOS, so have no idea if the quality is on par or not. :sweat_smile:

Test done. Not sure if I did it correctly. Look at the printer URL. Is it ok. I used my own IP.

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.