Convert to Image¶
http://askubuntu.com/questions/50170/how-to-convert-pdf-to-image/50180
Imagemagick¶
convert \
-verbose \
-density 150 \
-trim \
test.pdf \
-quality 100 \
-flatten \
-sharpen 0x1.0 \
24-18.jpg
Multipage PDF:
convert -quality 100 -density 600x600 multipage.pdf single%d.jpg
PDFtoPPM¶
You can use pdftoppm to convert a PDF to a PNG:
pdftoppm input.pdf outputname -png
This will output each page in the PDF using the format outputname-01.png
, with 01
being the index of the page.
Converting a single page of the PDF¶
pdftoppm input.pdf outputname -png -f {page} -singlefile
Change {page}
to the page number. It's indexed at 1, so -f 1
would be the first page.
Specifying the converted image's resolution¶
The default resolution for this command is 150 DPI. Increasing it will result in both a larger file size and more detail.
To increase the resolution of the converted PDF, add the options -rx {resolution}
and -ry {resolution}
. For example:
pdftoppm input.pdf outputname -png -rx 300 -ry 300
PDFImages¶
pdfimages : pdfimages -j input.pdf output
DJVU¶
pdf2djvu -o %1.djvu %1
pdf2djvu -o compiled.djvu compiled.pdf
didjvu
Security¶
To remove restrictions from pdf (that doesn't have password)¶
QPDF¶
qpdf --decrypt OddJobs.pdf OddJobs_out.pdf
The Ghostscript way¶
gs -sPDFPassword=$PASS -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=%stdout% -c .setpdfwrite -f locked.pdf > unlocked.pdf
Burst¶
http://linuxcommando.blogspot.co.uk/2013/02/splitting-up-is-easy-for-pdf-file.html
http://linuxcommando.blogspot.co.uk/2014/01/how-to-split-up-pdf-files-part-2.html
http://linuxcommando.blogspot.co.uk/2015/03/how-to-merge-or-split-pdf-files-using.html
http://www.linuxscrew.com/2010/06/18/the-easiest-way-to-split-and-merge-pdf-files-in-ubuntu/
PDFtk¶
pdftk 'Caverns of the Snow Witch (Image Only).pdf' burst
Poppler¶
Only if the PDF is an image:
pdfimages -j $1a.pdf image
Create PDF¶
Imagemagick¶
One PDF¶
convert *.tif book.pdf
MAGICK_THREAD_LIMIT=1 convert *.tif +adjoin book.pdf
convert *.tif -monitor -page A4 book.pdf
Individual PDFs¶
find . -name '*.tif' -exec sh -c 'convert -compress jpeg -quality 85 $1 ${1%.png}.pdf' sh {} \;
tiff2pdf¶
tiffcp -c zip *.tif compiled.tif
tiff2pdf -n -z -o compiled.pdf compiled.tif
rm compiled.tif
Merge PDF¶
PDFtk¶
$ pdftk myoldfile.pdf cat 1 2 4 5 output mynewfile.pdf
You can specify page ranges like this:
$ pdftk myoldfile.pdf cat 1-2 4-5 output mynewfile.pdf
pdftk is also capable of merging multiple pdf files into one pdf.
$ pdftk pg_0001.pdf pg_0002.pdf pg_0004.pdf pg_0005.pdf output mynewfile.pdf
That would merge the files corresponding to the first, second, fourth and fifth pages into a single output pdf.
Ghostscript¶
gs -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -sOutputFile=<output>.pdf <pathtoinputfiles>*.pdf
PDFunite¶
linux command merge pdf files with numerical sort
$ pdfunite $(ls -v *.pdf) output.pdf
or
$ pdfunite $(ls *.pdf | sort -n) output.pdf
However, note that this does not work when filename contains special character such as whitespace.
In the case you can do the following:
ls -v *.txt | bash -c 'IFS=$'"'"'\n'"'"' read -d "" -ra x;pdfunite "${x[@]}" output.pdf'
Although it seems a little bit complicated, its just combination of
- Bash: Read tab-separated file line into array
- build argument lists containing whitespace
- How to escape single-quotes within single-quoted strings?
Note that you cannot use xargs since pdfunite requires input pdf's as the middle of arguments. I avoided using readarray since it is not supported in older bash version, but you can use it instead of IFS=.. read -ra .. if you have newer bash.