The settilingparams operator
This page applies to Harlequin v13.1r0 and later; and to Harlequin Core but not Harlequin MultiRIP
dict|null settilingparams –
If called with a null object on the stack, settilingparams
removes all tiling configuration.
To configure tiling, settilingparams
is called with a dictionary on the stack. The dictionary must contain one or more of the keys /Page
, /HVDPage
, and/or /HVDElement
. These keys define the tiling method to be applied for the different page and element types. The operator validates the /Page
, /HVDPage
, /HVDElement
and /Action
keys, and saves it to an internal dictionary. Tiling configuration is subject to save/restore.
| This tiling method applies to pages when HVD is not active, either because an HVD scan was not requested or configured, or because the HVD scan failed to find enough reusable content to turn HVD on. |
| This tiling method applies to pages when HVD is active. It is used to define the areas of each page to be emitted in the Page Define for HVD. Note: This functionality is intended for use with external HVD. Using tiling together with interval HVD is not recommended, as it's likely to be slower than not using HVD at all. |
| This tiling method applies to all raster elements generated when HVD is active. It is used to apply tiling limits to individual rasters composed by HVD. |
The value of each of each of these page/element type keys may be:
null | This indicates that the particular page or element type is not to be tiled. This is the default value; it can be set explicitly for clarity. |
A name or a string | If the value is a name or a string, it must represent one of the other keys listed above, and indicates that the configuration for the page/element type is the same as a different page/element type. As an example, the value of |
A dictionary | If the value is a dictionary, it describes a tiling method and the parameters to be applied for the page or element type; see Tiling method dictionaries . |
Caution:
If a job is configured to use eHVD and a tiling method is specified for HVDElement
or HVDPage
, or is configured to use iHVD with tiling method HVDPage
, but the HVD scan does not find any re-use then the tiling process will fall back to using the Page tiling method. If the value of Page is null
then no tiling will be performed, which may mean that very large rasters are delivered to the raster backend.
The dictionary passed to settilingparams
may also contain the optional key /Action
, with a PostScript procedure object as its value. If present, the /Action
procedure is called when processing PDF after each set of tiles are generated by the tiling method for /Page
or /HVDPage
(but not /HVDElement
). The Action
procedure is presented with a dictionary describing the set of tiles generated. It consumes this dictionary and returns either the name /Add
(to continue rendering the tiles) or /Discard
(to ignore the tiles). This hook will be used by the Scalable RIP, and possibly other OEM integrations, to analyze files and pass the tiles from each page of the job for scheduling on multiple RIPs. There are other potential uses of the hook (for example, reporting information about the tiles used early in the processing of a page).
Tiling method dictionaries
The tiling method dictionary for each page/element type must contain a /Method
key. The value of this key is a name or string that will be used to look up an implementation of the tiling method API. The tiling method API will be called for each appropriate page/element of the type configured, to validate method parameters, instantiate an iterator for the page/element bounding box, get all of the tiles from the iterator, and destroy the iterator. Tiling method API implementations may be supplied by OEM code in the skin, or built into the RIP. The Rectangular, Explicit and Error methods built in the SDK are listed in Tiling methods supported by Harlequin Core
.
The tiling method dictionary may also contain parameters specific to each tiling method. Any parameter type supported by the swdatum API (defined in the swdataapi.h
header file in the SDK) is permitted; this includes integers, Booleans, floats, names, strings, arrays of values, and dictionaries of values. The parameters may be used to configure the tiling iterator's behavior.
Different page/element types may be configured using the same method, but with different parameters, if desired.
When sending pages or page ranges to multiple farm RIPs in a Scalable RIP configuration, it is likely that the /Explicit
method will be used with different parameters in the configurations sent to each Farm RIP. In other multiple RIP solutions, it may be more appropriate to use the same tiling configuration for each RIP, and render all tiles of a page or page range on each Farm RIP.
Using an Action hook for tiling configuration
When tiling PDF and image files, the tiling configuration dictionary may optionally include an /Action
procedure, which can be used to determine whether to export information for later processing, or whether to render tiles immediately. The RIP can use this to determine whether to render a set of tiles, or to skip to the set of tiles (usually on the next page). The Action
procedure takes a dictionary on the stack, consumes it, and returns a name on the stack indicating the action to take. The dictionary on the stack provided to Action
contains:
| (Integer) The page number from the input file. |
| (Array). A tile array, using the same format as the |
Specifying /Action
in the tiling configuration will cause PDF to create a dictionary, insert the /Page
key and page number into the dictionary, call the tiling iterator method, insert the /Tiles
key and the output of tiling iterator method into the dictionary, then call the /Action
procedure. After calling the procedure, the name left on the stack will determine whether to interpret the page content (/Add
) or skip it (/Discard
).
If there is no /Action
procedure in the tiling configuration, then actions equivalent to /Add
are assumed.