Converting a PDF to one with multiple pages per sheet through the command line

15,418

Solution 1

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

Solution 2

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.

Solution 3

For me pdfnup was not available, and whilepdfxup did not work, pdfjam did:

pdfjam --nup 2x2 <infile>

To specify the output file name (in place of the autogenerated one) use the option --outfile

pdfjam --nup 2x2 <infile> --outfile <outfile>
Share:
15,418

Related videos on Youtube

user84207
Author by

user84207

Updated on September 18, 2022

Comments

  • user84207
    user84207 over 1 year

    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?

  • user84207
    user84207 about 11 years
    Thank you! I have used your solution. It is simple, not bloated, self-contained, cross-platform. Perfect.
  • guettli
    guettli over 9 years
    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
  • Cbhihe
    Cbhihe over 7 years
    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-researc‌​h/….
  • Cbhihe
    Cbhihe over 7 years
    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.
  • Dominic108
    Dominic108 almost 5 years
    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.
  • Loren
    Loren over 4 years
    On source forge the PDF tools were removed due to copyright issues: sourceforge.net/p/multivalent/discussion/252478/thread/e7850‌​c31/…