#!/usr/bin/env bash

# Compress pdf files using ghostscript.
#
# Defaults to 72 dpi.
#
# Usage:
#   pdfoptim SRC [TARGET] [DPI]
#
# Requires: ghostscript (gs)

optimize() {
  # Adapted from Alfred Klomp's shrinkpdf script
  # <http://alfredklomp.com/programming/shrinkpdf/>
  gs -q -dNOPAUSE -dBATCH -dSAFER \
    -sDEVICE=pdfwrite \
    -dPDFSETTINGS=/screen \
    -dCompatibilityLevel=1.3 \
    -dEmbedAllFonts=true \
    -dSubsetFonts=true \
    -dAutoRotatePages=/None \
    -dMonoImageResolution=$3 \
    -dMonoImageDownsampleType=/Bicubic \
    -dGrayImageResolution=$3 \
    -dGrayImageDownsampleType=/Bicubic \
    -dColorImageResolution=$3 \
    -dColorImageDownsampleType=/Bicubic \
    -sOutputFile="$2" \
    "$1"
}

src="$1"
dest="${2:--}"
dpi="${3:-72}"

optimize "$src" "$dest" "$dpi" || exit $?