The newer HP inkjet printers do their color management inside their hardware. So in principle they print with raw RGB and not with CMYK as most other inkjet printers. But to enhance quality and to make the devices more economic with ink HP also sends the information which areas are really black in the document so that there the black ink is used and not the three colored inks or even all four inks. So so-called KRGB has to be sent to the HP printers to get the best out of them. HP's HPIJS driver supports this when it gets KRGB as input from the "ijs" device. The patch attached to this report are HP's changes to add KRGB to the "ijs" device. It applies only to src/gdevijs.c. No warnings appear during compilation of src/gdevijs.src after the patch is applied.
Created attachment 1175 [details] Patch developed by HP to introduce KRGB support to the "ijs" device. See initial posting. The patch fixes this issue.
This would be something for the GPL Ghostscript release I assume, so assigning to Ralph. But perhaps it should go to Raph for approval.
I suppose we should support this, although the patch is flawed. HP only saw fit to implement 1 bit of K plane, but it should support other depths as well. This is essentially object tagging and so there might be desire for other flags, and as well many (non-HP) inkjet devices have variable dot size and require more than one bit for proper control.
The best contact at HP for this is probably David Suffield, the author of the patch. His email address is of the form firstname_lastname@hp.com.
Contact also Cory Meisch, cory dot meisch at hp dot com.
Below is David Suffield's answer to this issue. -------------------------------------------------------------------------- I have no problem with > 1-bit K plane support in Ghostscript. As long as it still meets the definition of KRGB. For example: KRGB definition: 1. K=1-bit to 8-bit black plane, RGB=24 bit color raster. 2. K-plane will contain objects that are black text and black line drawings. 3. RGB raster will _not_ contain K-plane objects. 4. K resolution and RGB resolution would be equal. 5. K-plane will be byte aligned. 6. K-plane bit definition; 0xff=black, 0=white. We could negotiate K-plane bit depth over the IJS bus and default to 1-bit K-plane for backward compatibility. I believe this was the general consensus that was reached a while back on the inkjet-list. Getting KRGB support up-stream into GPL Ghostscript 8.x would be a big help. -dave
Please note the attached patch is flawed - it breaks DeviceGray ijs devices like epsonepl. There is an updated patch after Feb 20, 2005.
Created attachment 1330 [details] the corrected(?) krgb patch, updated for ghostscript 8.50/8.51 Obsoleting the previous patch, as it breaks epsonepl, and it is out-dated as there is an updated one for gs 8.15 in hpijs source after feb 20, 2005. Also, the gs_malloc/gs_free macros have changed between gs 8.15 and 8.50; the attached patch is for gs 8.50/8.51 , modified from the updated patch for 8.15.
Created attachment 2080 [details] gdevijs-krgb-1.2-gs8.50.patch New upstream release of the patch for GPL gs 8.50
Created attachment 2081 [details] The v1.2 patch for AFPL gs 8.53 the v1.2 patch, corrected for gs 8.53 - one hunk is obsolete and removed due to parallel bug fixes, another adjusted due to modification in surrounding code between 8.50 and 8.53.
Reassigning to community liaison.
HP has posted a new patch now where bug 689065 is fixed. I have applied this patch to the Ghostscript SVN repository, rev 8497.