PostScript language ICC comment handlers
This page applies to Harlequin v13.1r0 and later; both Harlequin Core and Harlequin MultiRIP.
While the standard PostScript language contains various CIEBased
color spaces that can model the conversion for one rendering intent of one profile, it does not directly support ICC profiles. An extension to the standard PostScript language is specified in the ICC specification ] in the form of comment handlers. These comments are commonly used in the PostScript language exported by Adobe graphical applications amongst others.
The comment handlers are enabled using this PostScript language fragment:
/HqnImportICC /ProcSet findresource
/InstallEmbeddedICCHandlers get exec
which honors these comments defined in [ICC]:
%%BeginICCProfile:
%%EndICCProfile
%%BeginSetColorSpace:
%%EndSetColorSpace
Together, these comments allow the RIP to infer an ICCBased color space, which is set internally when handling these comments.
Two more comments are defined in [ICC]:
%%BeginRenderingIntent:
%%EndRenderingIntent
which the RIP does not handle because it does not need to. The reason is that jobs are required to use these comments in conjunction with the standard findcolorrendering
and setcolorrendering
operators. The RIP sets the appropriate rendering intent for this case and processes the ICC profiles natively. Internally, the RIP creates an ICCBased
color space and uses setrenderingintent
. The RIP does not convert the profiles to PostScript language CSAs and CRDs as the [ICC] and [RB3] expects.
As a result of the RIP handling ICC profiles natively, the auxiliary procedures defined in [RB3], GetPageDeviceName
, GetHalftoneName
, and GetSubstituteCRD
, are simple stub functions. This is not a problem because normal PostScript language programs do not use them; but one Genoa FTS job, 46301.PS , does probe these procedures and appears to indicate color management failures.
The comment handlers may be disabled using this analogous PostScript language fragment:
/HqnImportICC /ProcSet findresource
/RemoveEmbeddedICCHandlers get exec