вторник, 24 января 2012 г.

Сканер CanoScan LiDE 210 в debian


Взял себе на днях CanoScan LiDE 210 взамен CanoScan LiDE 90, для которого поддержку так и не сделали в линуксе, а танцы с бубном мне надоели. Итак, подключил CanoScan LiDE 210, запустил xsane - все работает. Не настраивал вообще ничего, только установил xsane. Сканер шустрый и достаточно тихий. С поддержкой кнопок (в терминологии разработчиков sane - sensors) все хреново, как обычно, но есть финт ушами:
$ scanimage -d "genesys:`sane-find-scanner|grep CanoScan|cut -d' ' -f 10`" -A|grep '\[hardware\]'|grep "\[yes\]"|wc -l
0
а теперь нажимаем любую кнопку:
$ scanimage -d "genesys:`sane-find-scanner|grep CanoScan|cut -d' ' -f 10`" -A|grep '\[hardware\]'|grep "\[yes\]"|wc -l
1
Одна из кнопок сканера не вызывает никакой реакции, остальные работают (хотя их названия в выводе scanimage -A перепутаны). Так что несложно сделать скрипт для пакетного сканирования, реагирующий на кнопки:
scan.sh
#!/bin/bash

SCANNER=`sane-find-scanner|grep CanoScan|cut -d' ' -f 10`
if [ -z $SCANNER ]
then
    echo "Scanner not found!"
    exit 1
fi
SCANNER="genesys:$SCANNER"

counter=1
while true
do
    BUTTON=`scanimage -d "$SCANNER" -A | grep '\[hardware\]' | grep "\[yes\]" | wc -l`
    if [ $BUTTON == 1 ]
    then
        echo -n "Start scan image $counter ..."
        scanimage -d "$SCANNER" --resolution 75 --mode Color --depth 16 --format png > $counter.png.tmp
        mv $counter.png.tmp $counter.png
        echo " complete"
        counter=$(($counter+1))
    fi
done
Собственно, запускаем вышеуказанный скрипт и жмем любую кнопку на сканере после помещения в него очередного документа.

Комментариев нет:


(C) Alexey Pechnikov aka MBG, mobigroup.ru