HqnImpose2 and other calls to page device procedures
This page applies to Harlequin v13.1r0 and later; both Harlequin Core and Harlequin MultiRIP.
There may want to add code that you would normally run by defining your own SensePageDevice
procedure to a call to the imposition procset (for example, to override resolutions set in the job itself). To add such code, defining a procedure called SensePageDeviceExtra
. This is called after the main calculations made by the procset for laying out the imposed sheet. It should leave key / value pairs on the operand stack which is passed back to the page device in the same way that a normal SensePageDevice
procedure should. The default value is a null procedure.
You can also define a procedure call SensePageDeviceInit
, which is also called during SensePageDevice
, but before the calculations to design the layout. This procedure should not change the operand stack at all.
In a similar way you can define a procedure called BeginPageExtra
that is called within the BeginPage
procedure defined by the procset. At the time the procedure is called the page count value is still on the operand stack and may be referred to. That is, the showpage
count is on the stack, but it is not at the top—the top of stack is a “mark” (placed there by internal code) and the showpage
count is below the mark. The procedure can refer to the showpage
count, but it must not alter the stack in any way.
Lastly, a procedure called EndPageExtra
may be defined that is called during the EndPage
processing. It is not called during device deactivation, and at the time it is called the top item on the operand stack is a “mark” and below that a Boolean defining whether or not the current page is output. The EndPageExtra
procedure should not alter the stack in any way.
It's also possible for objectives or tactics to set values to be passed back to the page device. They should define key / value pairs in a dictionary called pagedevicePassBack
, which is present in the top level dictionary when those procedures are called.