(v13) Configuring the page device
This page applies to Harlequin v13.1r0 and later; both Harlequin Core and Harlequin MultiRIP.
The page device is a concept introduced into the Level 2 PostScript language to replace the previous less well formulated band device and frame device. The difference is, however, more in the degree of control it offers rather than the intention. All three refer to raster devices rather than the input / output devices of the core-RIP interface. (For the different PostScript-language meanings of “device”, see (v13) What is a device?)
The page device is accessed through the operators setpagedevice
and currentpagedevice
. [RB2] explains carefully the mechanism by which these operate (section 4.11), but does not give much background. This chapter considers the page device from a functional point of view.
The chapter also describes the mechanisms which the Harlequin RIP offers to extend the functionality of the page device, and some of the extensions built in. Some of these extensions are subjects in their own right, however, and are considered more fully in their own chapters: for example page imposition ((v13) Imposition), color separation ((v13) Color separation), color formats ((v13) Continuous tone and color printers) and so on. See (v13) Parameter reference summary for a full list.
The keys in the dictionary operand of setpagedevice
can be grouped as follows (whether they are listed in [RB2] or are RIP extensions):
- Built-in keys . These are present in all implementations. For example
/PageSize
is always present. - Optional keys . Some keys are not present in the core-RIP, but are added by the skin at start-up if required. If present, they affect the behavior of the core-RIP.
/Separations
is an example of such a key. It would not need to be present in an implementation of an embedded controller driving a low-resolution laser printer, but if it were, the RIP would act on it./Separations
is always present in GUI versions, but you will find it is added by a start-up file. - Device-specific keys . These are keys which have no bearing on the operation of the core-RIP, but are simply passed through the page device to the
%pagebuffer%
device. An example might be a printer with optional lamination of the emerging paper. A Boolean key could be introduced, say/Lamination
, which iftrue
causes lamination to occur and iffalse
not to. - Hooks . A hook is a procedure or similar that will be executed when a job reaches a particular point, allowing the behavior of jobs to be modified in some way.
/BeginPage
is an example of a hook which is defined in [RB2]./StartRender
,/OperatorActions
,/SensePageDevice
are examples of RIP extensions which are hooks. See (v13) Hooks for details.