Skip to main content
Skip table of contents

Example illustrating ColorantFamilies


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

An example illustrating ColorantFamilies follows. It shows the use of two device types to distinguish between configurations where channels may be omitted (Mutable) and configurations where they may not be omitted (Fixed). The Plugin name arbitrarily chosen is “SimpleDevice”. This example would be appropriate for including in RIP boot-up PostScript (for example, in Sys/HqnOEM):

CODE
<<
   % Default keys for Colorants dictionary selection which must allow a match
   % with a Colorants dictionary, or else the setpagedevice will throw an error
  /Plugin (SimpleDevice)
  /DeviceType (Fixed)
  
  /SeparationDetails <<
    /ColorantFamilies [
      <<
        /ColorantFamilyName (DeviceGray)
        /DeviceTypes [
          <<
            /Plugin (SimpleDevice)
            /DeviceType (Mutable)
            % CustomConversions don't apply to process spaces
            /CustomConversions ({{}{}{}} cvlit)
            /Colorants [
              << /Names [ (Gray) /Presence 1 /ColorantType 2 /sRGB [0.0 0.0 0.0] ] >>
            ]
          >>
        ]
      >>
      <<
        /ColorantFamilyName (DeviceRGB)
        /DeviceTypes [
          <<
            /Plugin (SimpleDevice)
            /DeviceType (Fixed) % All channels required
            % CustomConversions don't apply to process spaces
            /CustomConversions ({{}{}{}} cvlit)
            /Colorants [
              << /Names [ (Red) ]   /Presence 2 /ColorantType 1 /sRGB [1.0 0.0 0.0] >>
              << /Names [ (Green) ] /Presence 2 /ColorantType 1 /sRGB [0.0 1.0 0.0] >>
              << /Names [ (Blue) ]  /Presence 2 /ColorantType 1 /sRGB [0.0 0.0 1.0] >>
            ]
          >>
        ]
      >>
      <<
        /ColorantFamilyName (DeviceCMYK)
        /DeviceTypes [
          <<
            /Plugin (SimpleDevice)
            /DeviceType (Mutable)
            % CustomConversions don't apply to process spaces.
            /CustomConversions ({{}{}{}} cvlit)
            /Colorants [
              << /Names [ (Cyan) (C) ]    /Presence 1 /ColorantType 1 /sRGB [0.0 1.0 1.0] >>
              << /Names [ (Magenta) (M) ] /Presence 1 /ColorantType 1 /sRGB [1.0 0.0 1.0] >>
              << /Names [ (Yellow) (Y) ]  /Presence 1 /ColorantType 1 /sRGB [1.0 1.0 0.0] >>
              << /Names [ (Black) (K) ]   /Presence 1 /ColorantType 2 /sRGB [0.0 0.0 0.0] >>
            ]
          >>
          <<
            /Plugin (SimpleDevice)
            /DeviceType (Fixed) % All channels required
             % CustomConversions don't apply to process spaces
            /CustomConversions ({{}{}{}} cvlit)
            /Colorants [
              << /Names [ (Cyan) (C) ]    /Presence 2 /ColorantType 1 /sRGB [0.0 1.0 1.0] >>
              << /Names [ (Magenta) (M) ] /Presence 2 /ColorantType 1 /sRGB [1.0 0.0 1.0] >>
              << /Names [ (Yellow) (Y) ]  /Presence 2 /ColorantType 1 /sRGB [1.0 1.0 0.0] >>
              << /Names [ (Black) (K) ]   /Presence 2 /ColorantType 2 /sRGB [0.0 0.0 0.0] >>
            ]
          >>
        ]
      >>
      <<
        % This colorant family is for CMYK + OG spots
        /ColorantFamilyName (Hex)
        /DeviceTypes [
          <<
            /Plugin (SimpleDevice)
            /DeviceType (Mutable)
            % CustomConversions don't apply to process spaces (OG are spots)
            /CustomConversions ({{}{}{}} cvlit)
            /Colorants [
              << /Names [ (Hex Cyan) (HexC) ]    /Presence 1 /ColorantType 1 /sRGB [0 1 1] >>
              << /Names [ (Hex Magenta) (HexM) ] /Presence 1 /ColorantType 1 /sRGB [1 0 1] >>
              << /Names [ (Hex Yellow) (HexY) ]  /Presence 1 /ColorantType 1 /sRGB [1 1 0] >>
              << /Names [ (Hex Black) (HexK) ]   /Presence 1 /ColorantType 2 /sRGB [0 0 0] >>
              << /Names [ (Hex Orange) (HexO) ]  /Presence 1 /ColorantType 3 /sRGB [1 0.5 0] >>
              << /Names [ (Hex Green) (HexG) ]   /Presence 1 /ColorantType 3 /sRGB [0 1 0] >>
            ]
          >>
        ]
      >>
    ]
  >>
>> setpagedevice

If the job specific config later invokes this:

CODE
<<
  /Plugin (SimpleDevice)
  /DeviceType (Mutable)
  /ProcessColorModel /DeviceCMYK
  /SeparationColorNames []
  /SeparationDetails <<
    /SeparationStyle 4    % composite
    /CompositeColorNames [ /Cyan /Magenta /Yellow /Black ]
    % The value of 1 means the Mutable DeviceType works with separation omission
    % to avoid rendering blank separations.
    /ColorantRender [ /Cyan 1 /Magenta 1 /Yellow 1 /Black 1 ]
    /Omit <<
      /Process true
    >>
  >>
>> setpagedevice

the selected Colorants array is the one that matches the Plugin, DeviceType, and contains CMYK colorants (that is):

CODE
            /Colorants [
              << /Names [ (Cyan) (C) ]    /Presence 1 /ColorantType 1 /sRGB [0.0 1.0 1.0] >>
              << /Names [ (Magenta) (M) ] /Presence 1 /ColorantType 1 /sRGB [1.0 0.0 1.0] >>
              << /Names [ (Yellow) (Y) ]  /Presence 1 /ColorantType 1 /sRGB [1.0 1.0 0.0] >>
              << /Names [ (Black) (K) ]   /Presence 1 /ColorantType 2 /sRGB [0.0 0.0 0.0] >>
            ]
JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.