Some thoughts on imposition - approaches, requirements, etc.
There seem to be two main "classes" of imposition - simple booklet printing #83, and full imposition.
Booklet printing has simpler requirements. No need for rotation, special page positioning, etc. It's mostly about n-up printing and page order.
Full imposition can require:
- page rotation
- custom positioning of pages
- page reordering
- page duplication/repetition
- Addition of cut/crop marks
- Addition of colour bars
- Addition of registration marks
There are several ways to tackle imposition:
- With an external tool to post-process PDF or PostScript output (needs external tool to exist and be user friendly, 2 step process)
- As a second stage in Scribus by embedding exported PDF pages into a new PDF (requires PDF-in-PDF embedding, 2 step process)
- As part of PDF export and printing as an extension of the existing page selection/ordering scheme (needs custom "imposition editor" GUI)
- Using the existing canvas and layout tools to position frames representing pages, which when printed pull in those pages. See discussion on #83. (Requires ability to place a Scribus page - from the same doc, or another doc - into a frame)
There's not much we can do directly in this space. A few existing tools exist, such as Multivalent. This is a post-processing step, which offers maximum flexibility but less convenience.
PDF-in-PDF embedding / EPS-in-PS embedding
We can already do imposition to PostScript by exporting pages as EPS files. The same sort of thing could be done for PDF once Scribus supports embedding a PDF in an output PDF without rasterisation.
The downside is that this approach would be clumsy for more than a couple of pages due to the need to manually create the impositions. Support in the page templates for pulling in page "n" of an EPS/PDF, where "n" is a function of the current page number, would help a lot. Scripting would be another way to solve this.
This approach does require the user to export a document, then create another document for the imposition of it. As a post-processing approach, it's flexible, but somewhat inconvenient. Full support for crop marks, etc, would be possible, as in the documents-as-PageItems case below. As an added bonus, we could impose any PDF/EPS document, not just a Scribus generated one.
Built-in imposition support at PDF/PS export time
Doing imposition during PDF/PS export might be simpler and quicker to implement. On the other hand, for the user to be able to specify the impositions we'd need either a nasty-to-work-with text language to specify page order, position, rotation, etc, or a custom imposition editor GUI. That GUI, while not excessively difficult to write, would either be fairly limited or end up duplicating quite a bit of the functionality of the Scribus canvas.
This approach would probably be the most convenient and user friendly (ideal for booklet printing etc) but more limited. It would be hard to give the user full flexibility to do crop marks, colour bars, etc to their specs.
Imposition by including Scribus pages in PageItems
This approach would be the most flexible. It could be done either as post-processing step or possibly in the document its self. It'd permit an imposition to include custom elements like registration marks, colour bars, etc set up to the exact specs of the printer by placing them on the page as normal objects. These could be generated by a script, provided in a scrapbook, etc. Additionally, imposition would be very flexible as it'd use the full facilities of the scribus page layout and PageItem transformation. Being able to pull in a document as a frame would be very useful for other things too, including:
- "Master Document" support
- Pulling in external ads into a page (though this is easily done with EPS, and with PDF-in-PDF embedding when supported, using .sla gives maximum flexiblity at output time)
Such an imposition would need to be able to be done as some sort of template, where you design the first page and subsequent pages are done the same but with increasing sequence numbers, page numbers of included pages, etc. Some way would be required to specify how the page numbers to include were to increment.
This approach has a lot in common with using an EPS or PDF in a PageItem, as discussed above.
This could be done two signficantly different ways:
- Create a second document for the imposition, and "link" pages from the first document into PageItems like you do an EPS/PDF. Needs the ability for a PageItem to reference/link to a page in an external document.
- Create special "imposition pages" inside the original document, probably working somewhat like page templates. This could get rather complicated when considering automatic generation of the individual pages against a template (as large documents will need) vs hand imposition of each page as might be desired for booklets, etc. Needs the ability for a PageItem to "reference" another page in a document.