Sane Batch Scan Workaround

Obwohl scanimage aus dem SANE Werkzeugkasten in der (aktuellen?) OS X Version

$ scanimage --version
scanimage (sane-backends) 1.0.21cvs; backend version 1.0.21

(installiert nach http://blog.mro.name/2008/12/scanner-mustek-1200-cu-unter-mac-os-x-105/) beim Versuch per „batch“ mehrere Seiten zu scannen jeweils nach Seite 1 aus der Kurve fliegt:

$ scanimage --batch-start=45 --batch-count=16 --batch --batch-prompt \
--format=pnm --mode Color --resolution 300
...
Scanning page 46
scanimage: sane_start: Invalid argument

und das auch ein bekanntes Problem zu sein scheint, gibt’s einen Workaround per selbstgebautem Shell-Script:

#!/bin/sh
# http://blog.mro.name/2009/07/sane-batch-scan-workaroun/
pre=scan-`date "+%Y-%m-%dT%H:%M"`
echo "To create a pdf, call after scanning the pages:"
echo "    convert $pre*.png -despeckle -density 100x100 -compress JPEG -quality 50 -page a4 $pre.pdf"
for ((i=0;i < 100;i++))
do
	echo "Place document no. $i on the scanner."
	echo "Press <RETURN> to continue, <q> + <RETURN> to quit."
	echo \\a
	read key
	if [[ $key == "q" || $key == "Q" ]] ; then
		break
	fi
	dst=$pre-page$(printf %03d $i)
	scanimage --mode Gray --resolution 300 --buffer-size=1024 --progress > $dst.pnm
	# background conversion:
	(convert $dst.pnm -level 15,85% -density 300x300 -type grayscale \
		-resample 100x100 $dst.png && rm $dst.pnm) &
done
ls -l $pre*

é voilá.

Um das ganze dann noch in ein PDF moderater Größe zu verwandeln genügt (ImageMagick z.B. via darwinport vorausgesetzt):

$ time convert *.png -despeckle -density 100x100 \
-compress JPEG -quality 75 -page a4 out.pdf
 
real	3m39.867s
user	2m55.069s
sys	0m9.628s

.

Flattr this!

Post a Comment

Your email is never published nor shared. Required fields are marked *