HqnImpose2 and simple imposition compatibility
This page applies to Harlequin v13.1r0 and later; both Harlequin Core and Harlequin MultiRIP.
In most cases, code using direct calls to HqnImpose2
is incompatible with simple imposition. In some cases, however, code in an output plugin’s setup file, or in a page feature, may use parts of HqnImpose2
that can be made compatible (for example, by using a BeginPageExtra
procedure to clean up dictionaries that need to be reset for every page).
To support this, a dictionary named LayoutPassThrough
may be provided within the dictionary provided to HqnInitImpose
. If simple imposition is later installed, all HqnImpose2
configurations are removed, but entries in the LayoutPassThrough
dictionary are reinstated in the HqnInitImpose
call used by simple imposition. Note that any entries in this dictionary that clash with entries set by simple imposition are ignored (with a warning in the system monitor/log file). Dictionary entries are merged to one level, and clashes at that level are reported in the same way. Developers must test their implementations carefully to determine whether the functionality they require can be made compatible with simple imposition.
Within the LayoutPassThrough
dictionary, a procedure named ReplacementReport
may be included. This must return a single string, which is used in the system monitor to warn that some configurations may have been overridden. If the procedure is missing, a default warning string is used. To suppress the warning completely, return a zero-length string.
Previous versions of the RIP supported an HqnImpose2
procedure called BeginPageExtra
, allowing additional code to be tagged onto BeginPage
. In order to allow suitable layering of calls using LayoutPassThrough
, a dictionary form of this (named BeginPageExtras
) has been added. This operates in the same way as StartRender
and so on in the page device; keys used are arbitrary but must be unique. All procedure values in the dictionary are run. Procedures added here should not affect the page CTM or graphics state.