Printing in Booklet Format from the Linux Command Line
Here is a Linux command to take a PDF of half-letter-sized pages (5.5"x8.5") and arrange them, two pages per side, for booklet printing:
$ pdftops -level3 source.pdf - | psbook | psnup -2 -W5.5in -H8.5in | ps2pdf - booklet.pdf
All of these utilities are standard on a Debian-based system. Several filters are tied together using pipes to produce a properly-formatted PDF.
A Closer Look
Here’s a pipe-by-pipe breakdown of the command:
$ pdftops -level3 source.pdf
convert the source PDF to a level 3 postscript file (this is necessary because the remaining steps require a postscript source file).
| psbook
rearrange the pages from the resulting postscript source file into the appropriate order for notebook printing.
| psnup -2 -W5.5in -H8.5in
read in the reordered source file and arrange the reordered pages so that two
logical pages are printed on one physical sheet. If your source pages are a
different size, change the values of the -W
and -H
options. You can use the
-p
option (or lowercase -w
and -h
) to specify the output page size, but on
Debian-based systems this value is automatically read from /etc/papersize.
| ps2pdf - booklet.pdf
convert the resulting postscript file back into a PDF using the filename
specified. This step is not necessary if you know that the machine you will
print from can handle postscript files. If you leave this step out, replace it
with > booklet.ps
to write the output to a file named booklet.ps.
This method comes in handy because you don’t have to rely on printer driver options to handle the booklet reordering. In my experience, those driver options are terribly fussy and hard to work with. Further, many printer drivers don’t offer this ability.
I hope you find this info helpful.
Based on info from Scribus Wiki.
Update: I experienced a bug in postscript that was causing a single
page to be rendered upside-down (rotated 180 degrees) when converted to PDF.
Unable to trace the source of the bug, I did find out that filtering the
postscript through ps2ps
immediately after the initial conversion from PDF,
fixed the problem. ps2ps
is a postscript “distiller” which optimizes
postscript into simpler form. This does result in the loss of anti-aliasing,
which uglies up the result on the screen, but it does not affect printed copies.
If you experience rendering bugs, try adding ps2ps
, as in the following
command:
$ pdftops -level3 source.pdf - | ps2ps - - | psbook | psnup -2 -W5.5in -H8.5in | ps2pdf - booklet.pdf