pstops number-up with incorrect last page

Michael Sweet mike at
Fri Jan 4 07:38:11 PST 2008

Markus Durzinsky wrote:
> The pstops filter is producing incorrect output with number-up=2 on some documents.
> I use cups 1.3 r7167 compiled with Sun Studio 11 on a sparcv8, Solaris 9. On some ps-files (e.g. created by the cups pdftops filter, or some latex-beamer-presentations) with an odd number of pages and printed with 'number-up=2' the last page is missing.
> Calling the pstops-filter manually
>   /path/to/cups/lib/cups/filter/pstops 1 user title 1 "number-up=2" >
> creates a ps-file, where the last page is displayed incorrectly/incompletely by gv (using AFPL Ghostscript 8.50 (2004-12-10)) and also not printed by our HP LaserJet 4350.
> To resolve this, I did the following:
> filter/pstops.c (7067 2007-11-09 19:54:09Z mike) contains some code
> if (number && !is_first_page(number) && cupsArrayLast(doc->pages)) {
>     pageinfo = (pstops_page_t *)cupsArrayLast(doc->pages);
>     start_nup(doc, doc->number_up, 0, doc->bounding_box);
>     doc_puts(doc, "showpage\n");
>     end_nup(doc, doc->number_up);
>     pageinfo->length = cupsFileTell(doc->temp) - pageinfo->offset;
> }
> which is not executed on the last output page with an odd-page input document, due to the "!is_first_page(number)".
> I just removed the !is_first_page(number) test, so the command is now
> if (number && cupsArrayLast(doc->pages)) { ... nup-stuff ... }
> and everything works fine.
> The resulting ps-file is fully printable and can be viewer with gv.
> So, why should start/end_nup not be executed on the last output sheet containing only a single page?

It should be, but the best thing to do is file an official bug report

Please include a sample PS file that demonstrates the problem.


Michael Sweet, Easy Software Products           mike at easysw dot com

More information about the cups-devel mailing list