Title: Haiku IPP Print Bridge - early preview for IPP/JPEG printing

Hi Begasus,

thank you, that output is very useful already!

This looks like a very good candidate printer for the bridge:

Printer model: HP ENVY Inspire 7200 series
IPP: OK
Reported formats:
- image/urf
- image/jpeg
- application/PCLm
- image/pwg-raster
- application/vnd.hp-PCL

The important part is that the checker gets a clean IPP response:

HTTP: 200 OK
IPP: 2.0, status 0x0000

and the printer reports all three formats that the current bridge can generate:

image/urf
image/jpeg
application/PCLm

So from the checker side this looks very promising.

When you have time to test actual printing, I would suggest trying the formats in this order:

1. image/urf
2. application/PCLm
3. image/jpeg

image/urf would be the recommended first test. image/jpeg is the fallback.

I would be especially interested in whether application/PCLm works on this HP printer, because my Brother printer does not report PCLm support, so I cannot test that format locally.

If you do test actual printing later, please report:

Selected document format
Whether the page printed
Whether the output looked correct
Relevant bridge log output, if something failed

Thanks again - even the checker output alone is helpful, because it shows that this HP ENVY Inspire 7200 series exposes the right IPP formats.

Greetz
Juergen

2 Likes

Here’s another data point for you: HP LaserJet M15w. The test page printed fine using image/urf.

Testing: ipp://192.168.1.126:631/ipp/print
Checker: Haiku IPP Print Bridge checker v0.5.1
Host:    192.168.1.126
Port:    631
Path:    /ipp/print

HTTP:    200 OK
IPP:     2.0, status 0x0000, request 1

printer-name:
  NPI413349

printer-make-and-model:
  HP LaserJet M14-M17

printer-uri-supported:
  ipp://192.168.1.126/ipp/print
  ipps://192.168.1.126/ipp/print

ipp-versions-supported:
  1.0
  1.1
  2.0

document-format-supported:
  application/PCLm
  application/octet-stream
  image/pwg-raster
  image/urf

Bridge format check:
  OK: image/urf - URF / AirPrint raster path, Ghostscript device: urfrgb
  OK: application/PCLm - HP PCLm path, Ghostscript device: pclm
  NOTE: image/pwg-raster is reported by the printer, but this bridge build
        cannot generate PWG Raster unless Ghostscript provides a pwgraster device.

RESULT: OK - this printer reports image/urf and application/PCLm support over IPP.
        Recommended first test: image/urf

Thank you for your work on this!
--Scott

2 Likes

Thank you very much, Scott!

That is a very useful data point. The HP LaserJet M15w is especially interesting because it does not report image/jpeg support, but it does report image/urf and application/PCLm.

So this confirms that the new URF path is not just an alternative to JPEG, but actually makes additional printers usable.

For this printer the recommended bridge setting should be:

document_format: image/urf

Internally the bridge will then use Ghostscript’s urfrgb device and send the job as image/urf over IPP.

If you notice anything about print speed or quality compared to other systems, that would also be very useful feedback.

Thanks again for testing!

2 Likes
  • HP OfficeJet Pro 9015e

Supported: HP JetDirect IPP compatible
Preferred formats: PDF, JPEG

2 Likes

Thank you very much for testing!

The HP OfficeJet Pro 9015e is an interesting data point, especially because it is listed as HP JetDirect / IPP compatible and seems to prefer PDF and JPEG.

Could you please tell me how the actual test went?

  • Did the test page print successfully?

  • Which bridge format did you use: image/jpeg, image/urf, application/PCLm, or something else?

  • Was the print speed acceptable?

  • Did the printer show any unusual behaviour while processing the job?

If possible, it would also be very helpful to see the checker output, especially the document-format-supported section.

You can run it like this:

cd /boot/home/PrintSpool/tools
python3 check_ipp_printer.py ipp://PRINTER-IP:631/ipp/print

If that URI does not work, please also try:

python3 check_ipp_printer.py ipps://PRINTER-IP:631/ipp/print

The most useful part for the bridge is the list of formats reported by IPP, for example image/jpeg, image/urf, application/PCLm, application/pdf, or image/pwg-raster.

Thanks again - every tested printer helps to make the compatibility list more useful.

THX & Greetz
Juergen

1 Like
~/Desktop> /boot/home/PrintSpool/tools/check_ipp_printer.py ipp://192.168.1.69:631/ipp/print
Testing: ipp://192.168.1.69:631/ipp/print
Checker: Haiku IPP Print Bridge checker v0.5.1
Host:    192.168.1.69
Port:    631
Path:    /ipp/print

HTTP:    200 OK
IPP:     2.0, status 0x0000, request 1

printer-name:
  HPE6AACE

printer-make-and-model:
  HP OfficeJet Pro 9010 series

printer-uri-supported:
  ipp://192.168.1.69/ipp/print
  ipps://192.168.1.69:631/ipp/print

ipp-versions-supported:
  1.0
  1.1
  2.0

document-format-supported:
  application/vnd.hp-PCL
  image/jpeg
  image/urf
  image/pwg-raster
  application/PCLm
  application/octet-stream

Bridge format check:
  OK: image/urf - URF / AirPrint raster path, Ghostscript device: urfrgb
  OK: image/jpeg - JPEG fallback path, Ghostscript device: jpeg
  OK: application/PCLm - HP PCLm path, Ghostscript device: pclm
  NOTE: image/pwg-raster is reported by the printer, but this bridge build
        cannot generate PWG Raster unless Ghostscript provides a pwgraster device.

RESULT: OK - this printer reports image/urf, image/jpeg and application/PCLm support over IPP.
        Recommended first test: image/
============================================================
[2026-06-12 17:16:35] Haiku IPP Print Bridge Spooler v0.5.1 started
[2026-06-12 17:16:35] Configuration: /boot/home/PrintSpool/config.json
[2026-06-12 17:16:35] Input folder:  /boot/home/PrintSpool/in
[2026-06-12 17:16:35] Queue:         /boot/home/PrintSpool/queue
[2026-06-12 17:16:35] Archive:       /boot/home/PrintSpool/archive
[2026-06-12 17:16:35] Printer profile: Example IPP Printer
[2026-06-12 17:16:35] Printer URI:   ipp://192.168.1.69:631/ipp/print
[2026-06-12 17:16:35] Document type: image/jpeg
[2026-06-12 17:16:35] Ghostscript output device: jpeg (.jpg)
[2026-06-12 17:16:35] Ghostscript:   300 dpi, JPEGQ=95
[2026-06-12 17:16:35] Printing is done ONLY from queue/
[2026-06-12 17:16:35] ============================================================
[2026-06-12 17:20:15] New job: 20260612-172015-test-page-1781310015.ps
[2026-06-12 17:20:15] Job-ID: 20260612-172015-20260612-172015-test-page-1781310015.ps
[2026-06-12 17:20:15] Working directory: /boot/home/PrintSpool/work/20260612-172015-20260612-172015-test-page-1781310015.ps
[2026-06-12 17:20:15] Starting Ghostscript:
[2026-06-12 17:20:15] gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=jpeg -r300 -dJPEGQ=95 -dTextAlphaBits=4 -dGraphicsAlphaBits=4 -sOutputFile=/boot/home/PrintSpool/work/20260612-172015-20260612-172015-test-page-1781310015.ps/pages/page-%03d.jpg /boot/home/PrintSpool/work/20260612-172015-20260612-172015-test-page-1781310015.ps/original/20260612-172015-test-page-1781310015.ps
[2026-06-12 17:20:16] Ghostscript output: document-format=image/jpeg, device=jpeg, extension=.jpg
[2026-06-12 17:20:16] Ghostscript created 1 image/jpeg page(s)
[2026-06-12 17:20:16] Printing page 1/1: page-001.jpg
[2026-06-12 17:20:18] IPP response: HTTP 200 OK, IPP 2.0, status 0x0000, request 1
[2026-06-12 17:20:18] Job archived: /boot/home/PrintSpool/archive/2026/06/12/20260612-172015-20260612-172015-test-page-1781310015.ps
[2026-06-12 17:20:18] 
------------------------------------------------------------

Test page prints! :man_mage: :tropical_drink:

3 Likes

Is the Check_ipp_printer an installation file or is it only to be unzipped and the files get installed at the right place?

Ein Deustche wort “Anwendungen” im die tracker…nur fur Haiku IPP print bridge

bitte entshuldig meiner grammatik

Ref:

I have Haiku’s IPP working on the last few printers I’ve used for Haiku so maybe I need to help kick this can…

Hi san2ban,

no need to apologize - I understand you perfectly. :slight_smile:

check_ipp_printer.zip is not an installer. It is a small standalone test tool.

Just unzip it into any folder and run the included check_ipp_printer.py file from there. It does not automatically copy or install any files on your system.

For example:

python3 check_ipp_printer.py ipp://PRINTER-IP:631/ipp/print

Replace PRINTER-IP with the IP address of your printer.

If you install the complete Haiku IPP Print Bridge using ./install.sh, the checker is included and will be installed here:

/boot/home/PrintSpool/tools/check_ipp_printer.py

The checker only examines the IPP capabilities and supported document formats of the printer. It does not install a printer or change the Haiku printing system.

Thank you also for pointing out the remaining German word “Anwendungen” in the support tracker. I will check and correct it.

Questions, problems, bug reports and feature requests can also be submitted here:

https://support.haiku.ihlau.net/index.php

.

2 Likes