#!/bin/sh
MAXW=1024
tmpf=$(mktemp /tmp/.$(basename "$0").XXXXXXXX.ps)
gs -q -dBATCH -dNOPAUSE -sDEVICE=bbox $1 2>&1 | grep "^%%BoundingBox" | {
read n x1 y1 x2 y2
w=$(( ($x2-$x1)+1 ))
h=$(( ($y2-$y1)+1 ))
SCALE=$(( $MAXW/w ))
if [ $SCALE -eq 0 ]; then SCALE=1; fi
W=$(( $w*$SCALE ))
H=$(( $h*$SCALE ))
echo "$SCALE dup scale
$((1-x1)) $((1-y1)) translate" > $tmpf 
gs -q -dNOPAUSE -sDEVICE=png16m -sOutputFile=$2 -g$W""x$H -f$tmpf -f$1
} >/dev/null
rm $tmpf
