Created Date: 16 Mar, 2022 15:06
Last Modifed Date: 28 Jun, 2022 14:13

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

There are two ways of configuring the colorants on XG devices. One way is to use a /DeviceN Process Color Model (PCM) with the whole set of for example; CMYKOG, being treated as process colorants. The other way is to use a /DeviceCMYK PCM and treat the OG as additional spots. Our recommendation is to use CMYK with spots model because modeling the color conversions is generally simpler. If there is a need to treat all the colorants as process, the extra steps are covered below.

This example configuration is for a contone, band interleaved CMYKOG device that illustrates the minimum recommended setpagedevice keys that need to be set for an XG device. Of these, the ValuesPerComponent, ProcessColorModel, SeparationColorNames, and SeparationOrder, are standard keys defined in [RB3]. (The remainder are Harlequin extensions documented in SeparationDetails and the Harlequin Core Developer’s Guide.)

<<
  /PageBufferType /LE
  /Halftone false
  /ValuesPerComponent 256
  /Plugin (Example)     % for selecting the colorant set
  /DeviceType (CMYKOG)  % for selecting the colorant set
  /ProcessColorModel /DeviceCMYK
  /InterleavingStyle 3 % band interleaved

  /SeparationColorNames [
    /Cyan /Magenta /Yellow /Black /Orange /Green
  ]
  /SeparationOrder 1 index

  /SeparationDetails <<
    /SeparationStyle 4 % composite
    /SeparationOrdering 5 % fixed order of channels, spots last
    /CompositeColorNames [
      /Cyan /Magenta /Yellow /Black /Orange /Green
    ]

    % Device colorant setup
    /ColorantRender <<
      /Cyan 1 /Magenta 1 /Yellow 1 /Black 1 /Orange 1 /Green 1
    >>

    /ColorantFamilies [
      % Replace default ColorantFamilies

      <<
        /ColorantFamilyName /DeviceCMYK

        /DeviceTypes [
          << % CMYKOG
            /Plugin (Example)
            /DeviceType (CMYKOG)
            /CustomConversions ({{}{}{}}cvlit)

            /Colorants [
              % Arrange the colorant list in the order required by the device
              << /sRGB [0.0 1.0 1.0] /Presence 2 /ColorantType 1 /Names [ (Cyan) ] >>
              << /sRGB [1.0 0.0 1.0] /Presence 2 /ColorantType 1 /Names [ (Magenta) ] >>
              << /sRGB [1.0 1.0 0.0] /Presence 2 /ColorantType 1 /Names [ (Yellow)] >> 
              << /sRGB [0.0 0.0 0.0] /Presence 2 /ColorantType 2 /Names [ (Black) ] >>
              << /sRGB [1.0 0.7 0.2] /Presence 2 /ColorantType 3 /Names [ (Orange) ] >>
              << /sRGB [1.1 0.8 0.4] /Presence 2 /ColorantType 3 /Names [ (Green) ] >>
            ]
          >>

          % Other device types should go here
          % This may include a standard CMYK device
          % ...
        ]
      >>
    ]
  >>
>> setpagedevice
CODE

Of particular interest is the ColorantFamilies that defines the capabilities of the colorants for the CMYKOG DeviceType. If this device is capable of being used with different colorant sets, for example; CMYKO or just CMYK, then this should be represented by additional colorant set dictionaries within the DeviceTypes array.

It is common practice to supply a ColorantFamilies array containing all available families, just once in startup code. Thereafter, switching between colorant sets is done by calling setpagedevice with the Plugin and DeviceType matching the new selection.

XG devices with DeviceN PCM

If there is a need to treat all of the XG colorants as process, rather than as CMYK + spots, the colorant configuration

in the page device needs to be modified. This example highlights the differences with the above CMYK+ spot configuration for CMYKOG:

<<
  ...
  /ProcessColorModel /DeviceN
  ...

  /SeparationDetails <<
    ...

    /ColorantFamilies [
      % Replace default ColorantFamilies

      <<
        /ColorantFamilyName /Hex

        /DeviceTypes [
          << % CMYKOG
            ...
            /CustomConversions ({{gray-cmykog}{rgb-cmykog}{cmyk-cmykog}}cvlit)

            /Colorants [
              % Arrange the colorant list in the order required by the device
              << /sRGB [0.0 1.0 1.0] /Presence 2 /ColorantType 1 /Names [ (Cyan) ] >>
              << /sRGB [1.0 0.0 1.0] /Presence 2 /ColorantType 1 /Names [ (Magenta) ] >>
              << /sRGB [1.0 1.0 0.0] /Presence 2 /ColorantType 1 /Names [ (Yellow)] >> 
              << /sRGB [0.0 0.0 0.0] /Presence 2 /ColorantType 2 /Names [ (Black) ] >>
              << /sRGB [1.0 0.7 0.2] /Presence 2 /ColorantType 1 /Names [ (Orange) ] >>
              << /sRGB [1.1 0.8 0.4] /Presence 2 /ColorantType 1 /Names [ (Green) ] >>
            ]
          >>

          % Other device types should go here
          % ...
        ]
      >>
    ]
  >>
>> setpagedevice
CODE

The ProcessColorModel is /DeviceN.

The Orange and Green colorants have a ColorantType of 1, to indicate process colorants.

The CustomConversions contain procedures to convert /DeviceGray, /DeviceRGB, and /DeviceCMYK to CMYKOG. They are treated by the RIP as device space conversions similar to those defined in [RB3] for standard device spaces. These procedures should be defined to implement reasonable conversions, but they are only used if necessary. With a suitable color management configuration, it is possible to completely bypass them, and they will never be called. The gray-cmykog, rgb-cmykog, and cmyk-cmykog procedures are assumed to be defined prior to this setpagedevice call.