A piggy bank of commands, fixes, succinct reviews, some mini articles and technical opinions from a (mostly) Perl developer.

Working with PDFs on Linux

Combine several PDFs into one:

pdfunite in-1.pdf in-2.pdf in-n.pdf out.pdf

Convert image to PDF:

convert page1.png page2.png mydoc.pdf

Convert PDF to image:

convert foo.pdf foo.png

(source, source, source)

Reduce size of a PDF by converting to high quality images reducing size and rebuilding PDF:

convert -density 150 foo.pdf -quality 100 foo.png
for k in 0 1 2 3 4; do convert "foo-"$k".jpg" -resize '75%' "foo_smaller"$k".jpg"; done
convert foo_smaller* foo_smaller.pdf

(source, source, source)

Make all the pages of the PDF the same size:

mogrify -resize x1000 *.jpg
for i in *.jpg; do convert -density x1000 -units PixelsPerInch ${i} ${i}; done
convert *.jpg result.pdf


More tricks:

convert -background white -page a4 -density 150 -quality 80 -compress jpeg *.jpg result.pdf