11

Let us say I want slides.pdf to contain 4 slides per page.

I can open a slides.pdf document under evince (the default Ubuntu document viewer)

evince slides.pdf-->Print-->Page Setup--> Pages per Side --> 4 (or some other number)

Then, I can indicate I want to print to a file, and print. The result is an output.pdf file with the desired number of slides per sheet.

I want to achieve this same functionality through the command line (as I need to incorporate this into a script). All I have found some far are solutions relying on external tools. For example, I tried installing pdfjam (which required me to install 88.1 MB worth of packages from texlive-latex-base in order to achieve a functionality that I already have!), The result was only failure with pdfjam ERROR: LaTeX package pdfpages.sty is not installed.

I would rather avoid external packages.

How do I achieve this through the command line?

2

to perform an IMPOSITION, nothing is better than Multivalent.jar (latest free version with tools inside, latest Multivalent build currently hosted on sourceforge - 2009 - has no more pdf tools)

you can download the Multivalent.jar build with tools from:

online man - http://multivalent.sourceforge.net/Tools/pdf/Impose.html

use:

java -cp path...to/Multivalent.jar tool.pdf.Impose -dim (rowsxcols) -paper (paper sizes where pages will be imposed) file.pdf
  • Thank you! I have used your solution. It is simple, not bloated, self-contained, cross-platform. Perfect. – user84207 May 15 '13 at 21:47
20

You can also use pdfnup:

pdfnup --nup 2x2 --no-landscape file.pdf

where 2x2 refers to 2 rows by 2 columns (or the reverse--I'm not sure). See man pdfnup for more options.

  • 3
    pdfnup works fine. A note for people who want to put the same one page PDF four times on one page: You need to list the input pdf file four times: pdfnup --no-landscape --a4paper --nup 2x2 input.pdf input.pdf input.pdf input.pdf – guettli Dec 20 '14 at 17:16
  • 1
    An addition to above answer + comment: pdfnup --nup 2x2 --frame true --noautoscale false --delta "0.2cm 0.3cm" --scale 0.90 your.pdf will print 4 slides on one page of a pdf file named "your-nup.pdf" using content of "your.pdf" as input pages. --frame true prints a frame around each slides, --delta... specifies a margin between frames, and --scale ... ensures that a sheet margin is introduced so your printer handles the job well without cutting off content. All options at www2.warwick.ac.uk/fac/sci/statistics/staff/academic-research/…. – Cbhihe Feb 14 '17 at 17:20
  • Paul Robert: I know yr answer is old but feel free to incorporate my comment in yr answer. I can't speak for @guettli. Everything works well for Ubuntu up to 16.04 at least. (I have not tested it on a rolling distribution with the latest of kernel images and packages.) Cheers. – Cbhihe Feb 14 '17 at 17:22
  • BTW, pdfnup uses internally the pdfpages.sty package, which the op did not want to use. I have the opposite feeling: I will use the pdfpages.sty package in TexStudio to do the job. – Dominic108 Jun 19 at 23:04

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.