PDF Cheatsheet
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:
editor /etc/ImageMagick-6/policy.xml
Add the following just before the final </policy>
tag:
<policy domain="coder" rights="read | write" pattern="PDF" />
E.g.
<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:
- output-0.png
- output-1.png
- output-2.png
Crop PDF
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
References
- 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