Skip to main content
Skip table of contents

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.

JavaScript errors detected

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

If this problem persists, please contact our support.