As with all of my cheatsheets, this is just a dumping ground for as things come up.
Save Unlocked PDF
If you get a PDF that requires a password to unlock, you can use this command to save a version that won't need unlocking in future.
qpdf \ --password=$PASSWORD \ --decrypt $INPUT.pdf \ $OUTPUT.pdf
sudo apt-get install qpdf.
Create Encrypted PDF
PASSWORD="somePasswordHere" qpdf \ --encrypt \ $PASSWORD $PASSWORD \ 256 -- input.pdf \ output.pdf
Create A PDF From A Series Of Images
The following command will create a PDF document where all the images are the same width.
convert -quality 100% -resize 629 \ "path/to/image.png" -resize 629 \ "path/to/image2.png" -resize 629 \ output.pdf
-resize 629. Also, all your images need to have the same DPI, otherwise it doesn't work.
Fixing Error Message
If you get the error message:
convert-im6.q16: attempt to perform an operation not allowed by the security policy `PDF' @ error/constitute.c/IsCoderAuthorized/408.
Then do the following. Edit your ImageMagick policy configuration:
Add the following just before the final
<policy domain="coder" rights="read | write" pattern="PDF" />
<policy domain="coder" rights="none" pattern="PDF" /> <policy domain="coder" rights="none" pattern="XPS" /> <policy domain="coder" rights="read | write" pattern="PDF" /> </policymap>
It should now work!
Split PDF Into Set Of PDFs
If you wish to split a PDF into a set of single-page PDFs, you can do so like this:
pdftk myoldfile.pdf burst
sudo apt install pdftk-java.
Reverse PDF Pages
If your PDF is in the reverse order of what it should be, you can rearrange the pages with the following command:
$INPUT_FILENAME=input.pdf $OUTPUT_FILENAME=reversed.pdf pdftk $INPUT_FILENAME \ cat end-1 \ output $OUTPUT_FILENAME
Convert PDF To Set Of Images
Tools like Figma make it really easy to export as a single PDF. However, I need to convert that to just a set of PNG images. Luckily this is really easy, and essentially the same as before in reverse (using ImageMagick).
convert \ input-file.pdf \ output.png
That will create a set of incremented filenames like so:
If you have a PDF, and you find that the margins are too large, which is causing it to be hard to read easily on a tablet, you can crop the margins with pdfcrop as shown below:
LEFT=-20 RIGHT=-25 TOP=-60 BOTTOM=-175 pdfcrop \ --margins "$LEFT $TOP $RIGHT $BOTTOM" \ /path/to/pdf.pdf
- Stack Overflow - How can I easily crop a PDF page?
- How-To Geek - How to Remove a Password from a PDF File in Linux
- Stack Overflow - ImageMagick security policy 'PDF' blocking conversion
- Linux Commando - Splitting up is easy for a PDF file
First published: 14th April 2019