#!/bin/sh -e name="$1" [ -n "$name" ] || { echo "Usage: $0 " exit 1 } name=$(readlink -f "$name") D=`mktemp -d` cd "$D" echo "Output file directory: $D" PAGE=0 while true; do PAGE=$((PAGE+1)) scanimage --device-name=genesys --format=png --progress --resolution 150 --mode Gray -x 210 -y 297 | convert -rotate 180 -modulate 120 -level 30,60% - cur.png FNAME=page`printf '%02i' $PAGE` pngquant 4 < cur.png > $FNAME.png convert $FNAME.png $FNAME.pdf echo "Insert next page and press Enter; q to stop" read x [ "$x" = q ] && break || true done # pdfmerge does not get along with just one input file if [ $PAGE -eq 1 ]; then mv page*.pdf "$name" else pdfmerge page*.pdf "$name" fi rm -rf "$D"