Support non-standard page size outputs with crop

This commit is contained in:
Raman Gupta 2016-01-20 19:38:23 -05:00
parent 5c71571399
commit e983c2989f
2 changed files with 19 additions and 7 deletions

16
scan
View File

@ -4,6 +4,7 @@ DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
DEVICE=fujitsu DEVICE=fujitsu
OUTPUT=scan.pdf OUTPUT=scan.pdf
USEARRAY=0
APPEND=0 APPEND=0
RESOLUTION=300 RESOLUTION=300
MODE=Lineart MODE=Lineart
@ -16,9 +17,9 @@ TRUNCPAGE=0
HELP=0 HELP=0
SIZE=Letter SIZE=Letter
PGHEIGHT= PGHEIGHT=
PGHEIGHTIN=11 PGHEIGHTIN=
PGWIDTH= PGWIDTH=
PGWIDTHIN=8.5 PGWIDTHIN=
CROP=0 CROP=0
DESKEW=0 DESKEW=0
VERBOSE=0 VERBOSE=0
@ -125,13 +126,13 @@ case "$SIZE" in
esac esac
if [ "$PGHEIGHT" != "" ]; then if [ $CROP != 1 -a "$PGHEIGHT" != "" ]; then
PGHEIGHTIN=$(units --compact -1 "$PGHEIGHT mm" 'in') PGHEIGHTIN=$(units --compact -1 "$PGHEIGHT mm" 'in')
PGHEIGHT="--page-height $PGHEIGHT -y $PGHEIGHT" PGHEIGHT="--page-height $PGHEIGHT -y $PGHEIGHT"
PS2PDF_OPTS="-dEPSCrop" PS2PDF_OPTS="-dEPSCrop"
fi fi
if [ "$PGWIDTH" != "" ]; then if [ $CROP != 1 -a "$PGWIDTH" != "" ]; then
PGWIDTHIN=$(units --compact -1 "$PGWIDTH mm" 'in') PGWIDTHIN=$(units --compact -1 "$PGWIDTH mm" 'in')
PGWIDTH="--page-width $PGWIDTH -x $PGWIDTH" PGWIDTH="--page-width $PGWIDTH -x $PGWIDTH"
PS2PDF_OPTS="-dEPSCrop" PS2PDF_OPTS="-dEPSCrop"
@ -139,6 +140,11 @@ fi
if [ $CROP = 1 ]; then if [ $CROP = 1 ]; then
CROP="--swcrop=yes" CROP="--swcrop=yes"
PGHEIGHT=
PGWIDTH=
PGHEIGHTIN=
PGWIDTHIN=
PS2PDF_OPTS="-dEPSCrop"
fi fi
if [ $DESKEW = 1 ]; then if [ $DESKEW = 1 ]; then
@ -160,7 +166,7 @@ if [ $VERBOSE = 1 ]; then
fi; fi;
echo >&2 "Scanning..." echo >&2 "Scanning..."
#eval strace -f -o /tmp/scan-trace.txt scanadf -d $DEVICE $MAXPAGE $PGHEIGHT $PGWIDTH -S $SCRIPT --script-wait --resolution $RESOLUTION --mode $MODE $SOURCE -o scan-%04d #eval strace -f -o /tmp/scan-trace.txt scanadf -d $DEVICE $MAXPAGE $PGHEIGHT $PGWIDTH -S $SCRIPT --script-wait --resolution $RESOLUTION --mode $MODE $DESKEW $CROP $SOURCE -o scan-%04d
eval scanadf -d $DEVICE $MAXPAGE $PGHEIGHT $PGWIDTH -S $SCRIPT --script-wait --resolution $RESOLUTION --mode $MODE $DESKEW $CROP $SOURCE -o scan-%04d eval scanadf -d $DEVICE $MAXPAGE $PGHEIGHT $PGWIDTH -S $SCRIPT --script-wait --resolution $RESOLUTION --mode $MODE $DESKEW $CROP $SOURCE -o scan-%04d
shopt -s extglob nullglob shopt -s extglob nullglob

View File

@ -38,7 +38,7 @@ if [ $# -lt 1 ]; then
exit 1 exit 1
fi fi
if [ "$UNPAPER" == "" -o "$SEARCHABLE" == "" -o "$RESOLUTION" == "" -o "$RESOLUTION" == "" -o "$PGWIDTHIN" == "" -o "$PGHEIGHTIN" == "" ]; then if [ "$UNPAPER" == "" -o "$SEARCHABLE" == "" -o "$RESOLUTION" == "" -o "$RESOLUTION" == "" ]; then
usage usage
exit 1 exit 1
fi fi
@ -72,7 +72,13 @@ process_page() {
if [ $VERBOSE = 1 ]; then if [ $VERBOSE = 1 ]; then
PNMVERBOSE="-verbose" PNMVERBOSE="-verbose"
fi fi
pnmtops $PNMVERBOSE -imagewidth $PGWIDTHIN -imageheight $PGHEIGHTIN $PP_PREFIX$IMAGE_FILE | ps2pdf $PS2PDF_OPTS - > ${IMAGE_FILE%.*}.pdf | logstdout if [ "$PGWIDTHIN" == "" -o "$PGHEIGHTIN" == "" ]; then
PAGEOPTS="-equalpixels -dpi=$RESOLUTION -noturn"
else
PAGEOPTS="-imagewidth $PGWIDTHIN -imageheight $PGHEIGHTIN"
fi
log "Using page options: $PAGEOPTS"
pnmtops $PNMVERBOSE $PAGEOPTS $PP_PREFIX$IMAGE_FILE | ps2pdf $PS2PDF_OPTS - > ${IMAGE_FILE%.*}.pdf | logstdout
fi fi
status=$? status=$?