Converting a PDF to one with multiple pages per sheet through the command line
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:
- http://www.ziddu.com/download/1794145/Multivalent.tar.gz.html
- http://ge.tt/#!/21OPDHX/v/4
- http://dingodog.minus.com/mjhNX8Eiu
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>
Related videos on Youtube
user84207
Updated on September 18, 2022Comments
-
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 fromtexlive-latex-base
in order to achieve a functionality that I already have!), The result was only failure withpdfjam ERROR: LaTeX package pdfpages.sty is not installed
.I would rather avoid external packages.
How do I achieve this through the command line?
-
user84207 about 11 yearsThank you! I have used your solution. It is simple, not bloated, self-contained, cross-platform. Perfect.
-
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 over 7 yearsAn 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 over 7 yearsPaul 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 almost 5 yearsBTW, 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 over 4 yearsOn source forge the PDF tools were removed due to copyright issues: sourceforge.net/p/multivalent/discussion/252478/thread/e7850c31/…