Operator to report current separations
This page applies to Harlequin v14.0r0 and later; both Harlequin Core and Harlequin MultiRIP.
The currentseparationorder
operator is defined in internaldict
, and is a non-standard extension to the PostScript language.
dict
currentseparationorder array
This operator returns an array of arrays, containing dictionaries of colorant information. The array returned contains an entry for each sheet that will be produced. The entries are arrays containing dictionaries of information about each colorant that appears on the sheet. The sheet entries appear in the order in which they will be sent to the pagebuffer
device, and include dynamic separations. Information appears for each copy of a separation.
The information returned in each colorant dictionary is determined by the keys in the dictionary supplied to currentseparationorder
. This supplied dictionary contains a set of key-value pairs that control which pieces of information are returned. The values supplied in this dictionary can be used to restrict the set of colorants returned.
The values of all of the keys supplied must match the colorant information for the colorant to be returned. A value of null
will match any value of the colorant information. If a dictionary is provided which does not contain any valid keys, a rangecheck
error is raised.
Parameter and output dictionaries for currentseparationorder
Name | Type | Description |
---|---|---|
|
| This is the name of the color. If separation detection is enabled, this is the name of the color detected. |
|
| This is the name of the underlying colorant for the separation. |
|
| This is the colorant index of the separation. |
|
| This is the type of the colorant, which shows how it was introduced. It will be one of the names |
|
| This is an array of three real values, giving the approximate RGB values for the colorant. |
|
| This is an array of four real values, giving the approximate CMYK values for the colorant. |
|
| If this value is |
|
| Indicates if the separation is a background separation. See Using background separations for details. |
|
| This dictionary contains object keys that indicate how to process objects based on their graphic properties. The keys are |
|
| The X and Y are both upper case keys as returned by currentseparationorder, but take care when using this operator and |
|
| The |
Example: Detecting blank separations
Detecting blank spot color separations must start with having the RIP configured to omit blank separations.
The simplest example is the following, as already given in Output only non-blank separations . You may want to set more values in the SeparationDetails
dictionary for other reasons.
<<
/SeparationDetails <<
/Omit <<
/Monochrome false
/Separations false
/Process true
/Spot true
>>
>>
>> setpagedevice
Then, at the end of the page (in a StartRender
procedure, for example), you can call the currentseparationorder
operator:
<<
/Name null
/Omit null
>> 1183615869 internaldict /currentseparationorder get exec
{
{
% Stack holds a dictionary containing Name and Omit keys
% Insert here your code to manipulate the stack
} forall
} forall
In simple cases without step-and-repeat or repeated separations the code inside the two nested repeats is called once for each separation that was requested. Omit
is true
if that separation is omitted because it is blank, and false
if there is something on it.
If you are repeating separations on multiple "sheets" or using step and repeat, there are predictably more calls to the nested code.