Skip to main content
Skip table of contents

(v13) Calibration groups

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

The type 6 calibration dictionary allows the use of calibration groups containing multiple calibration sets. Each calibration set contains a set of curves for each colorant and criteria, such as the page resolution, or halftone for which this calibration set applies. When calibration groups are in effect, the RIP will select the best calibration set from the group to use for each object and colorant channel on the page, based on comparing the criteria in the /WarningsCriteria dictionaries for the calibration sets to the properties of each object.

If, for example, different objects on a single page use different dot shapes, a calibration group can be used to ensure that the appropriate calibration set is applied to each object.

For more information see (v13) Seamless screening.

Type 6 dictionary form

This section describes the format of the Type 6 calibration dictionary.

            % Type 6 dictionary-based calibration
              /CalibrationType 6
              /MissingCalibrationAbort Boolean
              /Device [ << … >> … << … >> ] or << … >>
              /Tone [ << … >> … << … >> ] or << … >>
              /IntendedPress [ << … >> … << … >> ] or << … >>
              /ActualPress [ << … >> … << … >> ] or << … >>

The sub-dictionaries, shown here by <<...>> are the Calibration set sub-dictionaries.

Key description:


(Required), always has value 6.



(Required), when set to true the RIP will generally abort a job if any calibration related warning is issued. Set to false to continue where possible. Where calibration groups are in effect, the RIP will abort the job in any case if the group does not contain a suitable calibration for the object and colorant in use.

/Device, /Tone, /IntendedPress, /ActualPress

(Optional), their values are either an array of calibration set sub-dictionaries (forming a calibration group), or a single calibration set sub-dictionary.

For more information see Calibration set sub-dictionaries.

When a single calibration set sub-dictionary is specified, the RIP will attempt to use this regardless of whether the criteria, for example the halftone, match the object to which it is being applied. Warnings would, however, be issued and the job would be aborted if /MissingCalibrationAbort is set.

By contrast, if an array of dictionaries is specified (even if it contains only one calibration sub-dictionary), this will be treated as a calibration group and the job will be aborted if its criteria do not match the object and colorant being calibrated, regardless of the value of /MissingCalibrationAbort.

Calibration set sub-dictionaries

This section describes the contents of a calibration set sub-dictionary:

              /Cyan dict
              /Magenta dict
              /Yellow dict
              /Black dict
              /Default dict
              /Spot1 dict
              /Spot2 dict
              /WarningsCriteria dict
              /ForceSolids Boolean % default false
              /NegativePrint Boolean % default false
              /CalibrationName name or string
              /BumpUpCurve array

Key description:

/Cyan, /Magenta, /Yellow, /Black, /Default, /Spot1, /Spot2

(Optional), their values must be type 2 colorant sub-dictionaries. The keys including /Default may be provided as either names or strings. The dictionary may contain colorant sub-dictionaries for any number of channels. Use a /Default colorant sub-dictionary if you wish to provide calibration curves for any colorants in the job for which no colorant subdictionary is explicitly provided. See Type 2 colorant sub-dictionaries for details of the sub-dictionaries.


(Optional), when the calibration set sub-dictionary is part of a group these criteria act as selection criteria, specifying the circumstances under which a particular calibration set should be used.

When the calibration set is not part of a group these criteria can be used to specify when there will be warnings about use of unsuitable calibration sets. In this case the behavior is as for type 5 calibration dictionaries. For more information about this case see WarningsCriteria subdictionary (N-color calibration) and Curve-related subdictionaries (N-color calibration).

If present, /WarningsCriteria accepts the optional keys shown in the following example:

  /HWResolution [xRes yRes]
  /Exposure integer
  /NegativePrint Boolean
  /HalftoneName (internal_name)
  /Frequency [low high]

is the page resolution to which this calibration applies.

/Exposure is a number that can be used to represent the film device exposure to which this calibration applies.

/NegativePrint when true indicates that this calibration should only be used when the device is printing a negative image of the job. When false indicates that this calibration should only be used when the device is printing a positive image of the job.

/HalftoneName is the internal name for the spot function. For example:


is the screen frequency range for which this calibration applies.

If any of these entries are absent it implies that this calibration set may be used for any value of the relevant condition. For example, if

/HWResolution is absent from the /WarningsCriteria dictionary, this calibration set may be used for any page resolution. If /NegativePrint is absent, this calibration set may be used when printing either a positive or a negative image of the job.


(Optional), /ForceSolids can also appear in the colorant sub-dictionaries. When absent or false the value is determined by any values given in the colorant sub-dictionaries. When true this overrides any values given in the colorant sub-dictionaries. See Type 2 colorant sub-dictionaries for details.


(Optional), set /NegativePrint to true if the device will be printing a negative image of the job, to allow the calibration to be suitably adjusted. This value is ignored for /ActualPress, /Tone or

/IntendedPress calibrations.


(Optional), if two calibration sub-dictionaries in a group would be an equally good match for the object and colorant channel in use, the one whose /CalibrationName comes earlier in the alphabet will be applied. In this situation a calibration sub-dictionary that with a /CalibrationName would, however, be preferred over an anonymous one.


(Optional), this key is only relevant to /ActualPress sub-dictionaries, and any entry in a /Device, /Tone or /IntendedPress sub-dictionary is ignored. For more information see (v13) Bump-up curves . If you want to apply a bump-up curve in HHR you must apply it using the /BumpUpCurve array in the /ActualPress calibration.

Type 2 colorant sub-dictionaries

The values associated with each colorant are dictionaries containing the calibration curves for the colorant. There may be a /Default colorant sub-dictionary which will be used for all colorants for which there is no explicitly named dictionary. In addition, the /Curve from the /Default colorant subdictionary is a default for all the colorant sub-dictionaries, so will be used for any cases where the colorant sub-dictionary is present but does not contain a /Curve key.

If a colorant sub-dictionary does not have a /Curve entry and there is no /Default entry either, it usse the /Black entry if present. Failing that it falls back to linear.

The possible keys in each colorant dictionary are:

            /colorant_key <<
              /CalibrationType 2
              /Curve array
              /ForceSolids Boolean % default false

Key description:


(Required), must have value 2.


(Optional), the /Curve array may be provided in any of the following forms:

/DeviceCurve [device pairs]

For example:

/DeviceCurve [[device pairs][default pairs]]

For example:

/DeviceCurve [[][default pairs]]

For example:



Set to true if 100% colorant is to be preserved even if the calibration curve specifies a lower output value for an input value of 100% (not normally recommended for calibration strips. The GUI RIP automatically sets this to false for calibration strips).


  • SNV (ScriptWorks Nominal Value) - X-values - these are the values from the job. NDC (Nominal Device Code) - Y-values - these are the output values from the calibration curve. If a default curve (Linearization) is used, SGV (ScriptWorks Golden Value) values represent the output (Y-values) from the device curve, which are then used as input (X-values) to the default curve. For more information on SNV, NDC and SGV values see (v13) Calibration interpolation arrays.
  • Any of these formats are supported for all 4 device types, that is; Device, ActualPress, Tone Curves, or Intended Press. However, the extended form containing two sub-arrays is only likely to be useful for Device and possibly Actual Press Curves.
  • The device curve if present is applied first, followed by the default curve, and lastly any

/BumpUpCurve from the calibration set sub-dictionary is applied, (see also (v13) Bump-up curves).

  • The two sub arrays if present, do not have to contain the same number of pairs.
  • Each array or sub-array must either be zero length (which implies linear calibration), or contain at least two calibration points (4 values).At least some of the NDC or SGV values must be in the range 0 through 1, with values outside this range ignored. The values should be strongly monotonic in each curve: that is, strictly increasing or decreasing with no values equal.
  • Tone curves can be inverted though they must still be monotonic. Again, the RIP will support the extended form of tone curves if provided.
  • SNV values in the arrays are expected to overlap the range of 0 through 1 and be weakly monotonic in each curve: that is, strictly increasing or decreasing but allowing consecutive values to be equal. Some values may be outside the range of 0 through 1 but only that part of the range that lies in the range 0 through 1 is used by setcalibration.
JavaScript errors detected

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

If this problem persists, please contact our support.