#!/usr/bin/bash
# Script to reduce the size of pdfs
# pdfshrink [target] in out
# if no out file is specified, a new file is created with the input filename.shrink.pdf

SHORT=psePh
LONG=printer,screen,prepress,ebook

PARSED=`getopt --options $SHORT --longoptions $LONG --name "$0" -- "$@"`
eval set -- "$PARSED"

type=screen # default target

while true; do
    case "$1" in
        -p|--printer)
            type=printer
            shift
            ;;
        -e|--ebook)
            type=ebook
            shift
            ;;
        -s|--screen)
            type=screen
            shift
            ;;
        -P|--prepress)
            type=prepress
            shift
            ;;
         --)
            shift
            break
            ;;
        -h|--help)
            echo "Usage: pdfshrink [-sepP | --screen  --ebook --printer --prepress] infile [outfile]"
            shift
            exit
            ;;
        *)
            break
            ;;
    esac
done

if [ -z "$2" ]
  then
  filename=$(basename "$1")
  extension="${filename##*.}"
  filename="${filename%.*}"
  out=$filename.shrink.$extension
else
  out=$2
  
fi

gs -dNOPAUSE -dBATCH -dPrinted=false -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/$type -sOutputFile="$out" "$1"
sleep 1
original_size=`du -h "$1"`
new_size=`du -h "$out"`
echo -e "Shrink from \n $original_size \n to \n $new_size"





