Created Date: 16 Mar, 2022 14:44
Last Modifed Date: 09 Jun, 2022 10:03

This page applies to Harlequin v13.1r0 and later; and to Harlequin Core but not Harlequin MultiRIP.

The keys in the page device SeparationDetails sub-dictionary that control matching of colorants to output formats are:



The entries of this array are Colorant Dictionaries, each mapping a colorant family to a set of device entries. The keys in a colorant dictionary are:


name|string. This is the name of the colorant family (for example, /DeviceGray, /DeviceCMYK, or (PhotoSpecial)). The name has no particular semantic meaning, but it is used for matching with the device colorant family.


array. This array contains a list of colorant set dictionaries, associating a Plugin and DeviceType with a set of colorants and attributes of those colorants. Each dictionary in this array contains:


string. A name matched with the corresponding Plugin entry in the top-level of the pagedevice dictionary. Only colorant-set dictionaries that contain a matching Plugin entry are considered as a colorant family match.


string. A name matched with the corresponding DeviceType entry in the top-level of the pagedevice dictionary. Only colorant-set dictionaries that contain a matching DeviceType entry are considered as a colorant family match.


string This is a string that is executed to define an array of three procedures for converting Gray, RGB, or CMYK colors to the colorants of the colorant family. The string may either define the conversions directly, or may load and run a file to define them. The execution of the string is expected to leave an array with three executable procedures in it on the stack. The custom conversions procedures should be self-contained. There is no guarantee when the RIP chooses to execute this string; the array or procedures are cached by the RIP for re-use.


array. This array defines the colorants that the device supports for this colorant family, their order, and their properties. The entries in the array are dictionaries, each containing the entries listed in Entries in a Colorants dictionary (below).


dict. This dictionary is used to request that colorants are not rendered. It is combined with the Presence entry from the colorant set dictionary to determine whether the colorant is rendered. This dictionary is keyed by the colorant name (either a name or a string object). Values expected are:

0: This colorant should not be rendered unless it is marked as required in the colorant set dictionary.

1: This colorant should be rendered, unless it is blank and separation omission is turned on. If separation omission determines that the colorant can be omitted, but the colorant is marked as fixed in the colorant set dictionary, an empty channel is presented to the output device.

If a colorant is not mentioned in ColorantRender, it is treated as if it had a value of 1.


name|string. If set, this key indicates the set of colorants actually used to output on the device. This may be different from the matched colorant family for photoink and similar devices, which often have extra light and dark variants of inks, but still process the page as CMYK.

If not explicitly set, then the device colorant family is set to the matched colorant family.

Entries in a Colorants dictionary

Each entry in the Colorants array in ColorantFamilies is a Colorants dictionary containing the following keys:


array. The array contains one or more strings, defining the name and any aliases for the colorant. Colorants used in /Separation or /DeviceN colorspaces are checked against these colorant names. If the colorant is already known as a spot or process colorant, it is mapped to this channel colorant.

Aliases may be equivalently added later using the addcolorantalias operator (see Extensions manual, "Operators controlling separations, colorants, and color channels").


integer. This integer indicates the type of the channel colorant. The channel colorant type is used to distinguish between process and spot colors for separation omission, and to determine the black channel colorant for calibration, photoink handling, and separation omission.

The values this integer can take are:

1          Process colorant

2          Process Black

3          Spot colorant

4          Reserved for dynamic spot colorants (see the Extensions manual, "Dynamic control of separation production".)

5          Reserved for future use.

6          Object type, potentially modified by ObjectTypeMap (see the Extensions manual, "The object map").


integer. This integer defines how this colorant interacts with overprints and knockouts. This can be used to ensure that varnishes and special inks (for example, white, metallic) interact correctly. This integer is interpreted as a combination of the values:

1          This channel is not knocked out. If a device color is used that does not include this channel's colorants, it does not knock out this channel. (If a device color is used which does include this channel's colorants, it is painted appropriately.)

2          This channel's colorants does not knock out other channels. If a device color is painted where all of the colorants' channels have this bit set, no other channels are knocked out. If any colorant's channel in a device color does not have this bit set, all channels that do not have bit 0 (value 1) set is knocked out.

If this key is not present, a knockout type of 0 is assumed, causing the colorant to knockout other colorants (where permitted) and to be knocked out by other colorants. This key may be present from Harlequin RIP version 11.x onwards.


integer. This integer defines whether the colorant can be omitted by the output device. The values it can take are:

1          This channel can be omitted. The Presence value is combined with the value in the ColorantRender dictionary to determine whether the channel is always omitted (if ColorantRender value is 0), or omitted if all colorants mapped to the channel are blank (if the ColorantRender value is 1, and separation omission is enabled), or not omitted (if the ColorantRender value is 1, and separation omission is not enabled).

2          This channel cannot be omitted, unless all channels are omitted. If separation omission is enabled, the channel is tested to determine if it has any marked content; if all channels can be omitted then the entire page is omitted.

3          This channel cannot be omitted, unless all other channels are omitted. The difference between this and the previous value is that in this case the content of the channel is never tested for marks. The decision to omit the channel is based entirely on the state of the other channels. This value is useful to control omission of object type channels (ColorantType 6 above) and other technical separations. Object type channels cannot usefully be tested for omission themselves. Using this Presence value allows an object type channel to be omitted if all of the colorant channels were blank, but to be present if any colorant channel was rendered. This value was introduced in Harlequin RIP version 12.

4          You can omit this channel unless all other channels are omittable. This value is useful for devices that require a raster for some colorant for each page, even if the page is blank. For example, using Presence value 1 for Cyan, Magenta, and Yellow, and Presence value 4 for Black forces rendering of a Black separation if there is no content on a page, but can omit Black if there is only Cyan, Yellow, and/or Magenta content on the page. This value was introduced in Harlequin RIP version 12.

5          This channel can never be omitted, even if all channels have no marks and separation omission is enabled. This value was introduced in Harlequin RIP version 12.


array. An array of three numbers, defining an sRGB equivalent for the channel. The sRGB equivalent is used for colorant output for previewing. It is also passed to the output raster device.