Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: Brother 8070D пакетное сканирование  (Прочитано 6828 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн SU1C1D3

  • Автор темы
  • Новичок
  • *
  • Сообщений: 31
    • Просмотр профиля
Brother 8070D пакетное сканирование
« : 17 Декабря 2012, 14:49:53 »
Есть принт-машина на базе Mint 13 и МФУ Brother 8070D. При попытке сканироваться стопку документов, сканирует 1 и все.
Кто сталкивался с подобной проблемой?

Оффлайн vselax

  • Активист
  • *
  • Сообщений: 309
    • Просмотр профиля
Re: Brother 8070D пакетное сканирование
« Ответ #1 : 17 Декабря 2012, 14:54:06 »
С проблемой не сталкивался, но можно попытаться сканировать консольными утилитами. Если получится - написать скрипт и положить его в
~/.gnome2/nautilus-scripts
для удобства запуска.

Оффлайн SU1C1D3

  • Автор темы
  • Новичок
  • *
  • Сообщений: 31
    • Просмотр профиля
Re: Brother 8070D пакетное сканирование
« Ответ #2 : 17 Декабря 2012, 16:48:47 »
Ок пойдем по пути меньшего сопротивления.

Скрипт вызова сканирования по кнопке:

#! /bin/sh
set +o noclobber
#
#   $1 = scanner device
#   $2 = friendly name
#

#   
#       100,200,300,400,600
#
resolution=300
device=$1
mkdir -p ~/brscan
if [ "`which usleep  2>/dev/null `" != '' ];then
    usleep 10000
else
    sleep  0.01
fi
output_file=~/brscan/brscan_"`date +%Y-%m-%d-%H-%M-%S`"
echo "scan from $2($device) to $output_file"
scanimage --device-name "$device" --resolution $resolution -l 0 -t 0 -x 210.00 -y 292.00 \
| pnmtojpeg --quality=90 > "$output_file".jpg
rm $output_file
echo  $output_file is created.

дописываю по этому мануалу
http://www.bible-mda.ru/soft/scanning/scanning-linux.html#23-h
и все равно равно не сканирует стопкой.

Оффлайн vselax

  • Активист
  • *
  • Сообщений: 309
    • Просмотр профиля
Re: Brother 8070D пакетное сканирование
« Ответ #3 : 17 Декабря 2012, 20:20:57 »
Я имел ввиду не консольную команду пакетного сканирования, а цикл с запусками одиночного сканирования. При этом, правда, будет перекалибровка цвета, но, возможно, ее удастся отключить.

Оффлайн SU1C1D3

  • Автор темы
  • Новичок
  • *
  • Сообщений: 31
    • Просмотр профиля
Re: Brother 8070D пакетное сканирование
« Ответ #4 : 18 Декабря 2012, 07:41:00 »
Не выйдет. Пользователь не каким боком не контактирует с системником. Его задача загрузить бумагу и нажать пару кнопок.

Оффлайн vselax

  • Активист
  • *
  • Сообщений: 309
    • Просмотр профиля
Re: Brother 8070D пакетное сканирование
« Ответ #5 : 18 Декабря 2012, 15:10:24 »
?? Клавиатура не доступна? Если клава все же доступна, то можно настроить комбинацию клавиш. А как планировалось запускать самопальный скрипт?

Оффлайн SU1C1D3

  • Автор темы
  • Новичок
  • *
  • Сообщений: 31
    • Просмотр профиля
Re: Brother 8070D пакетное сканирование
« Ответ #6 : 18 Декабря 2012, 15:55:19 »
Нет клава не доступна. При запуске сканирования у пользователя есть 3 варианта "изображение\email\файл". У каждого варианта свой скрипт запуска. В любой из них меняется и можно дописать что угодно.

Оффлайн vselax

  • Активист
  • *
  • Сообщений: 309
    • Просмотр профиля
Re: Brother 8070D пакетное сканирование
« Ответ #7 : 18 Декабря 2012, 16:11:43 »
Не очень представляю, как происходит взаимодействие с пользователем, но если есть вызов скрипта, то внутри него можно организовывать циклы. Внутрь цикла нужно поставить одиночное сканирование, а выход из него или по количеству, или по ошибке. Нужно придумать как его организовать, но для начала нужно сделать цикл и проверить производительность.

Оффлайн SU1C1D3

  • Автор темы
  • Новичок
  • *
  • Сообщений: 31
    • Просмотр профиля
Re: Brother 8070D пакетное сканирование
« Ответ #8 : 19 Декабря 2012, 07:42:55 »
В 3м сообщение приведен скрипт сканировать в файл. Что в нем можно дописать чтобы он например сканировал 5 листов и завершал скрипт.

Оффлайн vselax

  • Активист
  • *
  • Сообщений: 309
    • Просмотр профиля
Re: Brother 8070D пакетное сканирование
« Ответ #9 : 19 Декабря 2012, 13:15:30 »
Почитай программирование на BASH, конкретно - циклы. Вероятно, наиболее интересным будет цикл while. Попробуй выполнить скрипт:
#! /bin/bash

let "i = 0"
while [ "$i" -lt "10" ]; do
    echo $i
    let "i = i + 1"
done

exit 0
Посмотри, что делает. Идея в том, чтобы поместить в тело этого цикла (рядом/вместо echo $i) scanimage. Интересует скорость сканирования. Еще надо посмотреть опции отключения калибровки scanimage и что он пишет, когда кончается бумага?

Оффлайн SU1C1D3

  • Автор темы
  • Новичок
  • *
  • Сообщений: 31
    • Просмотр профиля
Re: Brother 8070D пакетное сканирование
« Ответ #10 : 19 Декабря 2012, 15:33:17 »
Использую вот такой редакции скрипт:

#! /bin/sh
set +o noclobber
#
#   $1 = scanner device
#   $2 = friendly name
#

#   
#       100,200,300,400,600
#
resolution=300
device=$1
mkdir -p ~/brscan
if [ "`which usleep  2>/dev/null `" != '' ];then
    usleep 10000
else
    sleep  0.01
fi
output_file=~/brscan/brscan_"`date +%Y-%m-%d-%H-%M-%S`"
let "i = 0"
while [ "$i" -lt "10" ]; do
    echo $i
    let "i = i + 1"
done
scanimage --device-name "$device" --resolution $resolution -l 0 -t 0 -x 210.00 -y 292.00 \
| pnmtojpeg --quality=90 > "$output_file".jpg
rm $output_file
echo  $output_file is created.

Отсканировав один лист выдает тоже самое сообщение "Скан не возможен. Извлеките бумаги из автоподатчика".

Оффлайн vselax

  • Активист
  • *
  • Сообщений: 309
    • Просмотр профиля
Re: Brother 8070D пакетное сканирование
« Ответ #11 : 19 Декабря 2012, 15:58:45 »
scanimage надо вставить в тело цикла, а не после него. Как-то так:
#! /bin/sh
set +o noclobber
#
#   $1 = scanner device
#   $2 = friendly name
#

#   
#       100,200,300,400,600
#
resolution=300
device=$1
mkdir -p ~/brscan
if [ "`which usleep  2>/dev/null `" != '' ];then
    usleep 10000
else
    sleep  0.01
fi
output_file=~/brscan/brscan_"`date +%Y-%m-%d-%H-%M-%S`"
let "i = 0"
while [ "$i" -lt "10" ]; do
    echo $i
    let "i = i + 1"
    scanimage --device-name "$device" --resolution $resolution -l 0 -t 0 -x 210.00 -y 292.00 \
    | pnmtojpeg --quality=90 > "$output_file".jpg
    rm $output_file
    echo  $output_file is created.
done
Хотя, "Скан не возможен. Извлеките бумаги из автоподатчика" настораживает. Добейтесь работы scanimage без ошибок и предупреждений, когда загружена пачка бумаги и сканирование идет по одному листу.

Оффлайн SU1C1D3

  • Автор темы
  • Новичок
  • *
  • Сообщений: 31
    • Просмотр профиля
Re: Brother 8070D пакетное сканирование
« Ответ #12 : 20 Декабря 2012, 07:52:12 »
Если запускать скрипт и в начале
#! /bin/sh

Валится
./scantoimage-0.2.4-0.sh: 20: ./scantoimage-0.2.4-0.sh: let: not found
./scantoimage-0.2.4-0.sh: 21: [: Illegal number:


Если запускать скрипт и в начале
#! /bin/bash

0
scanimage: rounded value of br-x from 210 to 209.981
scanimage: rounded value of br-y from 292 to 291.973
rm: cannot remove `/home/print/brscan/brscan_2012-12-20-07-44-57': No such file or directory
/home/print/brscan/brscan_2012-12-20-07-44-57 is created.
1
scanimage: rounded value of br-x from 210 to 209.981
scanimage: rounded value of br-y from 292 to 291.973
scanimage: sane_start: Invalid argument
pnmtojpeg: EOF / read error reading magic number
rm: cannot remove `/home/print/brscan/brscan_2012-12-20-07-44-57': No such file or directory
/home/print/brscan/brscan_2012-12-20-07-44-57 is created.
2
scanimage: open of device  failed: Invalid argument
pnmtojpeg: EOF / read error reading magic number
rm: cannot remove `/home/print/brscan/brscan_2012-12-20-07-44-57': No such file or directory
/home/print/brscan/brscan_2012-12-20-07-44-57 is created.
3
scanimage: open of device  failed: Invalid argument
pnmtojpeg: EOF / read error reading magic number
rm: cannot remove `/home/print/brscan/brscan_2012-12-20-07-44-57': No such file or directory
/home/print/brscan/brscan_2012-12-20-07-44-57 is created.
4
scanimage: open of device  failed: Invalid argument
pnmtojpeg: EOF / read error reading magic number
rm: cannot remove `/home/print/brscan/brscan_2012-12-20-07-44-57': No such file or directory
/home/print/brscan/brscan_2012-12-20-07-44-57 is created.
5
scanimage: open of device  failed: Invalid argument
pnmtojpeg: EOF / read error reading magic number
rm: cannot remove `/home/print/brscan/brscan_2012-12-20-07-44-57': No such file or directory
/home/print/brscan/brscan_2012-12-20-07-44-57 is created.
6
scanimage: open of device  failed: Invalid argument
pnmtojpeg: EOF / read error reading magic number
rm: cannot remove `/home/print/brscan/brscan_2012-12-20-07-44-57': No such file or directory
/home/print/brscan/brscan_2012-12-20-07-44-57 is created.
7
scanimage: open of device  failed: Invalid argument
pnmtojpeg: EOF / read error reading magic number
rm: cannot remove `/home/print/brscan/brscan_2012-12-20-07-44-57': No such file or directory
/home/print/brscan/brscan_2012-12-20-07-44-57 is created.
8
scanimage: open of device  failed: Invalid argument
pnmtojpeg: EOF / read error reading magic number
rm: cannot remove `/home/print/brscan/brscan_2012-12-20-07-44-57': No such file or directory
/home/print/brscan/brscan_2012-12-20-07-44-57 is created.
9
scanimage: open of device  failed: Invalid argument
pnmtojpeg: EOF / read error reading magic number
rm: cannot remove `/home/print/brscan/brscan_2012-12-20-07-44-57': No such file or directory
/home/print/brscan/brscan_2012-12-20-07-44-57 is created.

Оффлайн vselax

  • Активист
  • *
  • Сообщений: 309
    • Просмотр профиля
Re: Brother 8070D пакетное сканирование
« Ответ #13 : 20 Декабря 2012, 13:08:42 »
Цикл крутится, scanimage не пашет. Выполни в консоли:
scanimage --device-name "$device" --resolution $resolution -l 0 -t 0 -x 210.00 -y 292.00 | pnmtojpeg --quality=90 > "$output_file".jpgТолько замени $device, $resolution, $output_file нужными значениями, и выложи сюда всю команду (со значениями) и результат ее работы (уд/неуд и что пишет). Если будет отрабатывать корректно, запусти несколько раз, посмотри, что будет.

Оффлайн SU1C1D3

  • Автор темы
  • Новичок
  • *
  • Сообщений: 31
    • Просмотр профиля
Re: Brother 8070D пакетное сканирование
« Ответ #14 : 20 Декабря 2012, 14:04:29 »
Победили таким образом


#! /bin/sh
set +o noclobber
#
#   $1 = scanner device
#   $2 = friendly name
#

#   
#       100,200,300,400,600
#
resolution=100
device=$1
mkdir -p ~/brscan
if [ "`which usleep  2>/dev/null `" != '' ];then
    usleep 10000
else
    sleep  0.01
fi
rm *unipage*

scanimage --device-name "$device" --resolution $resolution -l 0 -t 0 -x 210.00 -y 292.00 --batch=unipage%.4d

for name in $(ls | egrep 'unipage') ; do
pnmtojpeg --quality=80 $name > ~/brscan/"`date +%Y-%m-%d-%H-%M-%S`"_"$name".jpg ;
done

rm *unipage*

 

Страница сгенерирована за 0.063 секунд. Запросов: 25.