Operators controlling separations, colorants, and color channels
This page applies to Harlequin v13.1r0 and later; both Harlequin Core and Harlequin MultiRIP.
Operators are available that affect the creation, ordering, and removal of separations. For composite output, these operators control colorants and color channels. These operators are the preferred method of manipulating separations; other methods are deprecated.
For all these calls, you can supply name as a name or as a string. Aliases are supported so that, for example, application or user-generated names like Hex-C
and Hex-Cyan
can both be associated with the cyan colorant of a six-color system but kept distinct from Cyan
in DeviceCMYK
.
setbackgroundseparation
The setbackgroundseparation
operator is defined in internaldict
, and is a non-standard extension to the PostScript language.
name
setbackgroundseparation
Marks all instances of the colorant as background separations (as defined in Using background separations for crop and other marks). It is usually more convenient to use the /Background
key to addtoseparationorder
. When separations are being imposed on the same sheet (that is, x
or y
is not 0
(zero)), background separations give you the ability to add crop marks, color bars, annotation, registration marks, and other arbitrary marginalia, independent of the original job, with some elements different and others in common over all the separations.
removefromseparationcolornames
The removefromseparationcolornames
operator is defined in internaldict
, and is a non-standard extension to the PostScript language.
name removefromseparationcolornames -
The colorant given by name is removed from the colorants known to the interpreter. Any objects drawn in this colorant or an alias remain but are not rendered (unless the separation is reintroduced). Subsequent calls to, for example, DeviceN
color spaces using any aliases for the removed colorant are diverted through the tint transform procedure.
If name is /All
or (All)
, all colorants are removed.
There is no single procedure to remove a color from the separation order and keep it taken into account as a separation color name. This requires calls to removefromseparationcolornames
and then addtoseparationcolornames.
addtoseparationcolornames
The addtoseparationcolornames
operator is defined in internaldict
and is a non-standard extension to the PostScript language.
name
addtoseparationcolornames -
Treats name as if it had been an entry in SeparationColorNames
(though this procedure does not actually alter the value in currentpagedevice
), so that subsequent uses of the colorant in Separation
or DeviceN
color spaces do not cause the associated tint transform to be used. However, the separation is not actually rendered unless you also use addtoseparationorder
(in the same way that it would not be rendered when not present in the SeparationOrder
array).
addcolorantalias
The addcolorantalias
operator is defined in internaldict
and is a non-standard extension to the PostScript language, found in the RIP from version 13.2r1 onwards.
alias colorant
addcolorantalias -
Adds alias
to the list of colorants known to the interpreter, which is then treated as equivalent to colorant
when used in /Separation
or /DeviceN
color spaces. This operator is equivalent to adding an alias in the Names
array of an entry in the Colorants
array.
Prior to this operation, alias
must not be known to the interpreter. And colorant
must be either present in SeparationColorNames
(explicitly or implicitly), or added using addtoseparationcolornames
. Otherwise an error is thrown.
Aliases are lost on the next call to setpagedevice; we therefore recommend that you use this operator within an Install
procedure. For example:
<<
/Install [
currentpagedevice /Install get /exec load {
(NewAlias_1) (ExistingColorant_2) 1183615869 internaldict /addcolorantalias get exec
(NewAlias_2) (ExistingColorant_2) 1183615869 internaldict /addcolorantalias get exec
} bind /exec load
] cvx
>> setpagedevice
addtoseparationorder
The addtoseparationorder
operator is defined in internaldict
and is a non-standard extension to the PostScript language.
name
addtoseparationorder
-
name
dict
addtoseparationorder -
Prepares a color to be rendered, where that color is already known to the interpreter (possibly through use of addtoseparationcolornames
or the Add
key in the SeparationDetails
dictionary in the page device). The position of the new separation is at the end of all existing separations if there is no dict argument, or derived from the dictionary if it is supplied; see below.
The dictionary given as an optional dict parameter to addtoseparationorder
controls the relative ordering of separations, though using the generalized term frame. For separations, the frame refers to the sheet; for composite output (but not pixel-interleaved output), the frame refers to the channel.
For example, you can say “insert separation after Cyan” or “add a new instance of Magenta on the same sheet where it already exists”.
With no dictionary, the named colorant is added at the end of existing frames in the x
, y
position 0
, 0
. This is the same operation as the automatic addition of a separation on setcolorspace
, in response to the Add
key in the SeparationDetails
dictionary in the page device.
The dictionary takes the keys as described below in Base parameters for addtoseparationorder.
See also Operator to report current separations for details of currentseparationorder
.
Base parameters for addtoseparationorder
The following keys may be provided in the dictionary supplied to addtoseparationorder
:
x
and y
are both lower case keys as supplied to addtoseparationorder
, but take care when using this operator and currentseparationorder
, which uses upper case.
addtoseparationorder x parameter
number
Default: 0
The x translation of the separation, in the normal right-handed PostScript coordinate system, when rendered on the frame. It is given in points and assumed to be 0
(zero) if the key is omitted or there is no dictionary.
x is exactly equivalent to the first array element in the triples supplied as the now-deprecated /Positions
key in extended halftone dictionaries. The same conditions apply as in this earlier method: All marks on the separation must fit on the frame once translated.
x
and y
should not be used in combination with ExtraOrientation
in the page device being set to any value other than 0
.
addtoseparationorder y parameter
number
Default: 0
The y
translation of the separation when rendered on the frame. It is given in points and assumed to be 0
(zero) if the key is omitted or there is no dictionary. (The coordinate system and the Note just given for x
apply also to y
, except that y
is equivalent to the second array element in the triples.)
addtoseparationorder Frame parameter
integer or name or string
An integer is taken as the position in sequence of an existing frame (separation sheet or composite channel) in the existing order, counting from zero. Together with InsertBefore
, the frame identified is used as a basis for positioning the new frame. (Once a frame has been inserted before an existing frame, the sequence is renumbered as required.)
A name or string is taken to be the name of a colorant already represented in the frame sequence. If you give a name, the first occurrence of that name in the sequence is found and used. If there may be multiple occurrences and you wish to use a second or subsequent frame, you must use an integer operand. If the name cannot be found, the RIP reports a rangecheck
error with the descriptive text "colorant name".
addtoseparationorder InsertBefore parameter
boolean
Default: false
A value of true
means insert the new frame before the one given by Frame
. false
means insert the new frame after Frame
.
If there is no InsertBefore
key or no dictionary, the new frame is added after all existing frames. If there is no InsertBefore key
, but Frame
is given, the colorant is assigned to the existing frame.
If InsertBefore
is given but Frame
is not given, the RIP reports a rangecheck
error with the descriptive text InsertBefore given but not Frame
.
addtoseparationorder Background parameter
boolean
Default: false
Indicates if the separation is a background separation (as defined in Color separation). When separations are being imposed on the same sheet (that is, some x
or y
is not 0
(zero), background separations give you the ability to add crop marks, color bars, annotation, registration marks and other arbitrary marginalia, independent of the original job, with some elements different and others in common over all the separations.
For more information and a code example see Example: registration marks.
addtoseparationorder ColorantType parameter
name
Default: Normal
Sets the colorant type, which determines how the colorant is trapped. This user parameter has exactly the same semantics as the ColorantType
key in the ColorantDetails
dictionary, described in section 6.3 of [RB3].
addtoseparationorder NeutralDensity parameter
number
A number representing the colorant’s capacity to absorb light, used to compare colorants when trapping. This user parameter has exactly the same semantics as the NeutralDensity
key in the ColorantDetails
dictionary, described in section 6.3 of [RB3].
addtoseparationorder Dynamic parameter
boolean
Default: false
A value of true
means that the colorant should be handled as a dynamic separation, which means that it is used for the current page only. This is useful for multipage jobs that use spot colors on some pages only, as described in Dynamic control of separation production.
addtoseparationorder OverrideScreenAngle parameter
boolean
Default: false
If true
, DefaultScreenAngle
must be present and causes the angle to override any set by the job for this colorant. If true,
and there is override information in the DefaultScreenAngles dictionary, the angle specified by DefaultScreenAngle
must match the angle in DefaultScreenAngles
for colorant. Typically, either all or none of the angles would be overridden, though DefaultScreenAngles
allows them to be controlled independently. If OverrideScreenAngle
is false
, the value of DefaultScreenAngle
is not used.
addtoseparationorder DefaultScreenAngle parameter
integer or real
The angle for the screen for that colorant (as a real number of degrees, as in the angle operand to setscreen
).
If OverrideScreenAngle
and DefaultScreenAngle
are missing, override behavior may come from the DefaultScreenAngles
dictionary or the OverrideAngle
system parameter.
addtoseparationorder object keys
The following object keys are available and can be used to process objects based on their graphic properties. See Example: Generating CT, LW, and mask channels for an example of their use.
/Shading
or/Vignette
/Picture
/Text
/Other
or/Linework
/Default
For definitions of these, see Object types.
/Default
refers to any page objects not covered by another object key in the dictionary. The action given for this key is thus a default used for all page objects not given an explicit treatment.
The values given to these object keys indicate what operation is performed for objects of the type indicated by the key. The values can be one of the following names:
| Ignore these objects in constructing this separation. |
| Create a mask from the objects, in this separation. In one-bit deep separations, the value |
| Render the object in its natural color, for this separation. |
| Knock out this object from this separation. The values |