Created Date: 16 Mar, 2022 15:02
Last Modifed Date: 16 Mar, 2022 15:02

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 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 (Imposition), color separation (Color separation), color formats (Continuous tone and color printers) and so on. See 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 if true causes lamination to occur and if false 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 Hooks for details.