(v13) Montages for laying out several jobs
This page applies to Harlequin v13.1r0 and later; both Harlequin Core and Harlequin MultiRIP.
Discussion of imposition so far has been restricted to jobs with more than one page, including pre-separated color jobs. This is because the server loop encapsulates each job: that is, it does not allow effects to be carried over from job to job. Indeed, consecutive jobs may not be destined for the same output device.
Where several jobs, especially EPS jobs, are to be imposed on one or more sheets, there needs to be some preprocessing identifying the jobs to be laid out, and the jobs almost always are present on disk to do this. We call such an arrangement a montage.
Where this is feasible, a typical arrangement is for the job that is initially received by the Harlequin RIP to set up the environment required (such as the BeginPage
procedures), and then run each of the jobs to be imposed. We call the main job a control job.
As with all PostScript-language programs, it is usually easier to write a fixed header, and then some variable data structures to be interpreted by the header procedures. In this case the header could be a ProcSet resource, or embedded directly in the control job, or, in the case of the GUI version of the RIP, be a page feature.
We shall set up a data structure to describe the layout using some combination of arrays and dictionaries. Given the names of the files, it might be possible to do some of the preprocessing, to determine page sizes and so on, using a PostScript-language program. Alternatively a separate preprocessor might need to be considered. This depends on how critical it is to keep the RIP busy, availability of additional RIPs for this purpose, the generality required, and the workflow being considered.