Skip to content

Instantly share code, notes, and snippets.

@tatome tatome/shrinkpdf.sh forked from danmackinlay/shrinkpdf.sh
Last active Aug 29, 2015

Embed
What would you like to do?
#!/bin/bash
if [ $# -lt 2 ] || [ $# -gt 3 ]; then
echo usage: shrinkpdf \<filename\> \<resolution\> \[\<output\>\]
exit
fi
if [ ! -e "$1" ]; then
echo "$1" does not exist. Exiting.
exit
fi
if [ $# = 3 ]; then
NEWNAME=$3
else
NEWNAME=`basename $1 .pdf`_shrinked.pdf
fi
if [ "$1 " = "$NEWNAME " ]; then
echo Input and output are identical. Won\'t overwrite---exiting.
exit
fi
if [ -e "$NEWNAME" ]; then
echo "$NEWNAME" exists. Delete? \(y/n\)
read ANS
if [ "$ANS " = "y " ]; then
rm "$NEWNAME"
else
exit
fi
fi
gs -q -dNOPAUSE -dBATCH -dSAFER \
-sDEVICE=pdfwrite \
-dCompatibilityLevel=1.3 \
-dPDFSETTINGS=/screen \
-dEmbedAllFonts=true \
-dSubsetFonts=true \
-dColorImageDownsampleType=/Bicubic \
-dColorImageResolution=$2 \
-dGrayImageDownsampleType=/Bicubic \
-dGrayImageResolution=$2 \
-dMonoImageDownsampleType=/Bicubic \
-dMonoImageResolution=$2 \
-sOutputFile="$NEWNAME" \
"$1"
echo $1: $((`wc -c "$1" | cut -d \ -f 1` / 1024 )) kb
echo $NEWNAME: $((`wc -c "$NEWNAME" | cut -d \ -f 1` / 1024 )) kb
@tatome

This comment has been minimized.

Copy link
Owner Author

commented Feb 8, 2014

Heh, I wrote this years ago, modifying a script by Alfred Klomp. It's really not rocket science, but apparently demand is high for this sort of thing: people kept coming to my site even though the script had disappeared from it for a long time.

Now I found @howthebodyworks had made a Gist of it. I've forked it and will link to it from my site again.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.