(v13) Ending a page of output
This page applies to Harlequin v13.1r0 and later; and to Harlequin MultiRIP but not Harlequin Core
The RIP calls D_CLOSE
when page
output is complete, instructing the plugin to finish the page.
A page is considered complete when d_linesprinted
(in deviceDefinition
) reaches imageHeight
(in pageHeader
), and d_feeding
(in deviceDefinition
) is zero.
The plugin can prevent D_CLOSE
, which ends the page, being called too soon by setting d_feeding
to a non‐zero value. While d_feeding
is non‐zero, the RIP sends repeated D_IDLE
calls. Setting this might, for example, be necessary to give the device time to position a write head or send dummy image data for a bottom margin.
Once the D_CLOSE
call comes, the page should be output. If the plugin (or the output device) needs more time before the RIP sends the next page (for instance, to watch for errors in media cut/eject operations), it can get it if the D_WAIT_ON_CLOSE
selector has been implemented. See (v13) D_WAIT_ON_CLOSE
.
Note:
An implementation of D_WAIT_ON_CLOSE
is extremely useful when a page is terminated because of an error, since D_CLOSE
comes immediately in such a case, missing the check of the d_feeding
flag in deviceDefinition
.
D_OPEN_ENDJOB
and D_CLOSE_ENDJOB
are used with D_IDLE
at the end of each job. D_IDLE
must there‐ fore differentiate between calls made during output, and calls made during endjob processing.