PDF – Printing Two Pages Per Sheet from Command Line

.lpcupsevincepdfpdftk

Say I start off from a PDF document, say of 12 pages, viewed with evince.
To produce another PDF of 6 sheets, with a page setup of two pages per side,
I normally use the "Print to File" device listed in the ^P dialogue window.
This works out pretty neatly.

I would like to translate this operation for the command line.

  • To my understanding, this is not an operation that pdftk can do. Please cross check.
  • The command lp, which would accept the option -o number-up=2, does not recognize any device called "Print to File", which indeed does not show up in lpstat -p -d.
  • I am aware of the post What is “Print to File” and can it be used from command line?. I have installed cups-pdf whereby a new printer named PDF is acknowledged. However, the print quality of a simple text file is way too raw (for example, no print margins to start with). Moreover, if I reprint an existing PDF file on this device, say lp -p PDF existing.pdf, evince can't even manage to open that copycatted output, while this is not the case with the "Print to File" way.
  • I had a look at man evince. At the bottom, it touches upon a few print preview options and redirects to a GNOME-developer project page. Admittedly I am not able to make sense and use of it.

Is there actually a way to combine the flexibility of the command line with the print quality that I obtain from that "Print to File" option in the GUI evince?

My test case, again, would be to create from the command line a PDF out of a source document printed with two pages per sheet.

Thanks for thinking along.

Best Answer

There is the pdfnup (or pdfjam) command line tool. You can install it from the repositories of your distribution (sudo apt-get install pdfjam for Debian-based distributions, yaourt -S pdfnup on Arch etc).

The default options will take the input PDF file and produce an output PDF with two input pages per page:

pdfnup -o output.pdf input.pdf
Related Question