Можно ли настроить сканер по сети

Сканирование документов по сети

Устанавливаемый драйвер или прямой доступ

В настоящее время распространены четыре типа драйверов: TWAIN, ISIS, SANE и WIA. По сути, эти драйвера выполняют роль интерфейса между приложением и низкоуровневой библиотекой от производителя, которая связывается с конкретной моделью.

Упрощенная архитектура соединения со сканером

Обычно подразумевается, что сканер подключен напрямую к компьютеру. Однако, никто не ограничивает протокол между низкоуровневой библиотекой и устройством. Это может быть и TCP/IP. Таким образом сейчас работает большинство сетевых МФУ: сканер виден как локальный, но соединение идет через сеть.

Плюс у такого решения в том, что приложению все равно как именно сделано подключение, главное видеть знакомый TWAIN, ISIS или другой интерфейс. Не нужно реализовывать специальную поддержку.

Но и минусы очевидны. Решение завязано на декстопную ОС. Мобильные устройства сразу выпадают из поддержки. Второй минус, драйверы могут работать нестабильно на сложных инфраструктурах, например, на терминальные серверах с тонкими клиентами.

Выходом из положения будет поддержка прямого подключения к сканеру по HTTP/RESTful протоколу.

TWAIN Direct

TWAIN Direct был предложен консорциумом TWAIN Working Group как вариант бездрайверного доступа.

Основная идея в том, что вся логика переносится на сторону сканера. А сканер предоставляет доступ по REST API. Дополнительно спецификация содержит описание публикации устройства (autodiscovery). Выглядит хорошо. Для администратора это избавление от возможных проблем с драйверами. Поддержка всех устройств, главное, чтобы было совместимое приложение. Для разработчика тоже есть плюсы, в первую очередь знакомый интерфейс взаимодействия. Сканер выступает веб-сервисом.

Если рассмотреть реальные сценарии использования, то минусы также найдутся. Первый — ситуация дедлока. На рынке нет устройств с TWAIN Direct и разработчикам нет смысла поддерживать эту технологию, и обратно. Второй — безопасность, спецификация не предъявляет требований к управлению пользователями, частоте обновлений для закрытия возможных дыр. Также непонятно, как администраторам контролировать апдейты и доступ. На компьютере есть антивирусное ПО. А в прошивке сканера, в которой очевидно будет веб-сервер, этого может и не быть. Или быть, но не то, что требует политика безопасности компании. Согласитесь, иметь зловреда, который будет отправлять налево все отсканированные документы не очень хорошо. То есть при внедрении данного стандарта задачи, которые решались настройками сторонних приложений перекладываются на производителей устройств.

Третий минус — возможная потеря функциональности. Драйвера могут иметь дополнительную пост-обработку. Распознавание штрихкодов, удаление фона. Некоторые сканеры имеют т.н. импринтер — функцию, которая позволяет сканеру печатать на обработанном документе. Этого нет в TWAIN Direct. Спецификация допускает расширение API, но это приведет к появлению множеств собственных реализаций.

И еще один минус в сценариях работы со сканером.

Сканирование из приложения, или сканирование от устройства

Давайте рассмотрим, как происходит обычное сканирование из приложения. Я кладу документ. Затем открываю приложение и сканирую. Затем забираю документ. Три шага. Теперь представьте, что сетевой сканер стоит в другом помещении. Нужно сделать как минимум 2 подхода к нему. Это менее удобно, чем сетевая печать.

Другое дело, когда сканер сам умеет отправлять документ. Например, на почту. Я кладу документ. Затем сканирую. Документ сразу летит в целевую систему.

В этом и есть основное отличие. Если устройство подключено к сети, то удобнее сканировать сразу в целевое хранилище: папку, почту или ECM систему. В этой схеме нет места драйверу.

Если посмотреть со стороны, мы используем сетевое сканирование, не меняя существующих технологий. Причем как из десктопных приложений через драйвер, так и прямо с устройства. Но удаленное сканирование с компьютера не стало настолько массовым, как сетевая печать, из-за различий в сценариях работы. Более востребованным становится сканирование сразу в нужное хранилище.

Поддержка сканерами TWAIN Direct как замена драйверам очень правильный шаг. Но стандарт немного запоздал. Пользователи хотят сканировать прямо с сетевого устройства, отправляя документы по назначению. Существующим приложениям нет необходимости поддерживать новый стандарт, так как и сейчас все работает прекрасно, а производителям сканеров нет нужды его реализовывать, так как нет приложений.

И в заключение. Общий тренд показывает, что простое сканирование одной — двух страничек будет замещаться камерами на телефонах. Останется промышленное сканирование, где важны скорость, поддержка функций постобработки, которые TWAIN Direct не может обеспечить, и где будет оставаться важной тесная интеграция с ПО.

Источник

Сканирование по сети – это просто

Прошивка

Cкачать ее можно тут.
Способ прошивки может меняться в зависимости от модели роутера. Эта инструкция для роутеров, как у меня.
Устанавливаем прошивку с помощью утилиты восстановления прошивки от асус.

  1. Подключаем роутер к компьютеру через Ethernet(через любой из lan-портов)
  2. Переводим роутер в режим восстановления – выключаем питание роутера, зажимаем кнопку Reset/Restore, включаем питание, удерживаем кнопку до тех пор, пока индикатор питания не начнет моргать
  3. Никаких настроек ip-адресов делать не надо, разве что присвоить компу адрес из 192.168.1.0/255.255.255.0 отличный от 192.168.1.1, и запустить пинг на 192.168.1.1
  4. Запускаем программу Firmware Restoration, отключаем фаервол(об этом просит программа), выбираем файл прошивки с расширением .trx


  • Ждем пару минут, пока роутер не появится по адресу 192.168.1.1
  • Настройка сканирования и печати

    Первым делом меняем пароль роутера:

    Настраиваем доступ в интернет:

    Настраиваем сервер DHCP, и меняем адрес, если не устраивает 192.168.1.1. Я меняю его на 192.168.11.1, в дальнейшем вся настройка будет на этот адрес:

    Сканирование

    Далее, переходим к настройке пакетов.

    Жмем Update package lists(если хотите поставить пакет, эту операцию нужно делать при каждой перезагрузке роутера), ищем через поле Filter и ставим пакеты:

    1. nano – более дружелюбный, чем vi, редактор
    2. sane-backends, sane-frontends
    3. xinetd – для доступа по сети
    4. kmod-usb-printer, kmod-usb-ohci, kmod-usb-uhci, kmod-usb2, kmod-usb-storage – поддержка различных USB-устройств на уровне ядра

    Перезагружаем роутер.

    Подключаемся к роутеру по ssh.
    Команда sane-find-scanner должна выдать примерно следующее:
    found USB scanner (vendor=0x04e8 [Samsung], product=0x341b [SCX-4200 Series]) at libusb:001:004
    # Your USB scanner was (probably) detected. It may or may not be supported by
    # SANE. Try scanimage -L and read the backend’s manpage.

    # Not checking for parallel port scanners.

    # Most Scanners connected to the parallel port or other proprietary ports
    # can’t be detected by this program.

    Заметьте значения vendor=0x04e8 , product=0x341b , libusb:001:004 , они нам понадобится.

    Теперь, либо вам повезет, либо придется сделать дополнительные настройки.
    Мне не повезло:
    root@OpenWrt:

    No scanners were identified. If you were expecting something different,
    check that the scanner is plugged in, turned on and detected by the
    sane-find-scanner tool (if appropriate). Please read the documentation
    which came with this software (README, FAQ, manpages).

    Тут можно узнать, какой модели сканера какой backend соответствует. Samsung SCX-4220 соответствует backend sane-xerox_mfp.5.
    Тут можно посмотреть мануал, из которого видно, что конфиг находится в файле /etc/sane.d/xerox_mfp.conf
    Редактируем его:

    Добавляем в файл строчку

    usb 0x04e8 0x341b

    и, на всякий случай, эту строку, как советуют на форумах

    Версия backends в этой прошивке 1.0.20, и, что интересно, при использовании последней версии(кажется, 1.0.22, версия ядра 2.6), которую я устанавливал на прошивке от Олега, сканер у меня так и не определился. Описание такой ситуации я тоже встречал на форумах, поэтому выбрал прошивку с версией ядра 2.4

    Сохраняем файл, проверяем:

    # scanimage –L
    device `xerox_mfp:libusb:001:004′ is a SAMSUNG ORION multi-function peripheral

    Сканер определяется, все хорошо.

    Теперь настроим доступ по сети:

    Добавляем в файл строчку 192.168.11.0/24 (необходимо указать подсеть вашего роутера)

    Добавляем в файл следующие строки:

    service saned
    <
    socket_type = stream
    server = /usr/sbin/saned
    protocol = tcp
    user = root
    group = root
    wait = no
    disable = no
    >

    Запускаем xinetd в режиме вывода отладочной информации:

    # xinetd -d
    Service defaults
    Bind = All addresses.
    Only from: All sites
    No access: No blocked sites
    No logging

    Service configuration: saned
    > flags = IPv4
    socket_type = stream
    Protocol (name,number) = (tcp,6)
    port = 6566
    wait = no
    user = 0
    group = 0
    Groups = no
    PER_SOURCE = -1
    Bind = All addresses.
    Server = /usr/sbin/saned
    Server argv = saned
    Only from: All sites
    No access: No blocked sites
    No logging

    11/9/2@07:43:31: DEBUG: 29656 Started service: saned
    11/9/2@07:43:31: DEBUG: 29656 mask_max = 6, services_started = 1
    11/9/2@07:43:31: NOTICE: 29656

    xinetd Version 2.3.14 started with loadavg options compiled in.
    11/9/2@07:43:31: NOTICE: 29656
    Started working: 1 available service
    11/9/2@07:43:31: DEBUG: 29656 active_services = 1

    Как видно, сервис запущен.

    Если сервис не запустился, проверьте, чтобы в файле /etc/services была строчка saned 6566 , и, если она отсутствует, то добавьте.

    Теперь скачаем и установим SaneTwain
    В архиве инструкция и 2 файла – sanetwain.ds и scanimage.exe
    запускаем scanimage.exe, указываем в настройках адрес роутера:

    перезапускаем scanimage.exe:

    Смотрим записи syslog в веб-интерфейсе:
    Sep 2 07:59:19 OpenWrt daemon.debug saned[31278]: saned (AF-indep+IPv6) from sane-backends 1.0.20 starting up
    Sep 2 07:59:19 OpenWrt daemon.debug saned[31278]: check_host: access by remote host: 192.168.11.139
    Sep 2 07:59:19 OpenWrt daemon.debug saned[31278]: check_host: getaddrinfo for local hostname failed: Name or service not known
    Sep 2 08:02:52 OpenWrt daemon.warn xinetd[29722]: Exiting.

    Путем поиска по форумам выясняем, чтобы в этой ситуации все заработало, надо добавить в hosts запись с именем для адреса роутера:

    killall xinetd
    xinetd

    Перезапускаем scanimage.exe(он глючный, возможно, только со второго раза все будет ок)

    Видим, что все работает. Ура.

    Теперь надо включить автозапуск xinetd в веб-интерфейсе роутера:

    Перезапускаем роутер, проверяем работу еще раз.

    Теперь копируем второй файл, sanetwain.ds, в каталог C:\Windows\twain_32\
    После этого в программах с поддержкой twain можно пользоваться сканером, в том числе и в замечательной программе для создания скриншотов Screenshot Captor:

    Печать

    Теперь настроим печать по сети:
    Устанавливаем пакет luci-app-p910nd.

    Делаем следующие настройки в веб-интерфейсе роутера:

    Убедимся, что сервер запустится при перезагрузке роутера:

    и то, что он действительно запустился:

    # ps|grep p9100
    32079 root 680 S /usr/sbin/p9100d -b -f /dev/usb/lp0 0

    Жмем «Пробная печать», ура!
    Печать по сети на всех прошивках, которые я смотрел, настраивалась без проблем, так что я уверен, что у вас проблем тоже не возникнет.

    Освобождение места на роутере под другие программы

    Подключаемся по ssh.
    Идея в том, чтобы удалить ненужные нам backends.
    backends находятся в папке /usr/lib/sane/
    Как видно из man, файлы нашего backend — libsane-xerox_mfp.so.1 и libsane-xerox_mfp.so.1.0.20
    Соответственно, если вы не планируете подключать другой сканер, все остальные можно невозбранно удалить что освободит
    root@OpenWrt:/usr/lib/sane# cd /usr/lib/sane/
    root@OpenWrt:/usr/lib/sane# du -m
    7 .
    Около 3.5 мб! Почему 3.5 а не 7? Потому что в этом каталоге ровно половина файлов – символические ссылки на библиотеки, расположенные в этом же каталоге.

    Способ удаления не самый изящный, но, тем не менее, действенный(mc установить не предлагать, под него уже нет места):
    root@OpenWrt:/usr/lib/sane# rm libsane-a*
    root@OpenWrt:/usr/lib/sane# rm libsane-b*
    root@OpenWrt:/usr/lib/sane# rm libsane-c*
    root@OpenWrt:/usr/lib/sane# rm libsane-d*
    root@OpenWrt:/usr/lib/sane# rm libsane-e*
    root@OpenWrt:/usr/lib/sane# rm libsane-f*
    root@OpenWrt:/usr/lib/sane# rm libsane-g*
    root@OpenWrt:/usr/lib/sane# rm libsane-h*
    root@OpenWrt:/usr/lib/sane# rm libsane-i*
    root@OpenWrt:/usr/lib/sane# rm libsane-j*
    rm: cannot remove ‘libsane-j*’: No such file or directory
    root@OpenWrt:/usr/lib/sane# rm libsane-k*
    rm: cannot remove ‘libsane-k*’: No such file or directory
    root@OpenWrt:/usr/lib/sane# rm libsane-l*
    root@OpenWrt:/usr/lib/sane# rm libsane-m*
    root@OpenWrt:/usr/lib/sane# rm libsane-n*
    root@OpenWrt:/usr/lib/sane# rm libsane-o*
    rm: cannot remove ‘libsane-o*’: No such file or directory
    root@OpenWrt:/usr/lib/sane# rm libsane-p*
    root@OpenWrt:/usr/lib/sane# rm libsane-q*
    root@OpenWrt:/usr/lib/sane# rm libsane-r*
    root@OpenWrt:/usr/lib/sane# rm libsane-s*
    root@OpenWrt:/usr/lib/sane# rm libsane-t*
    root@OpenWrt:/usr/lib/sane# rm libsane-u*
    root@OpenWrt:/usr/lib/sane# rm libsane-v*
    rm: cannot remove ‘libsane-v*’: No such file or directory
    root@OpenWrt:/usr/lib/sane# rm libsane-w*
    rm: cannot remove ‘libsane-w*’: No such file or directory

    Главное — не увлечься, и не убить то, что нужно оставить

    Теперь результат наглядно – до:

    Редактируем файл
    root@OpenWrt:/usr/lib/sane# nano /etc/sane.d/dll.conf

    комментим # всестроки, не относящиеся к нашему backend(все, кроме xerox_mfp )

    Теперь и scanimage запускается быстрее(он не тратит время на инициализацию всех backends), и хватит места, чтобы установить другие нужные сервисы.

    P.S.
    На форуме wl500g.info я читал замечания о том, что сканер в таком подключении работает медленнее, чем будучи подключенным напрямую к компу.

    Давайте проверим… Сканируем лист А4 в цвете в разном разрешении.

    600dpi через роутер(wifi, при этом смотрел ролик на youtube в 720p) 4мин 16сек, напрямую 1мин 47сек(через роутер реально в 2.5 раза медленнее);
    300 dpi через роутер 62сек, напрямую 31сек;
    150dpi через роутер 20сек, напрямую 15сек(тут разница совсем небольшая)

    В принципе, для иллюстрации документов в формате А4 или распознавания текста хватит 150 dpi. В ситуации, когда один сканер на несколько человек и объемы сканирования небольшие, вполне себе ничего решение.
    В ситуации, когда нужны высокие разрешения при больших объемах сканирования такое решение, естественно, не подойдет…

    Источник

    Читайте также:  Не работает водительский стеклоподъемник джентра
    Оцените статью