Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
linux_faq:настройка_wiasane_sane [2019/02/11 09:13] – external edit 127.0.0.1linux_faq:настройка_wiasane_sane [2019/05/14 07:52] (current) admin
Line 1: Line 1:
 +====== Задача ======
 +У меня была задача - сделать **скан-сервер** (по аналогии с принт-сервером) для **Windows**-клиентов. То есть сервер, который бы предоставлял пользователям доступ к сканерам по сети. В результате должен получиться единый унифицированный интерфейс доступа к сканерам. \\
 +На клиентских машинах прописывается подключение к сканеру на скан-сервере с помощью унифицированного драйвера. А на скан-сервере уже подключение к физическому устройству с использованием драйвера, специфичного для данного устройства. Таким образом, даже физическая замена сканера на другое устройство будет приводить только к необходимости переконфигурирования устройства на скан-сервере, но не на клиентах.\\
 +В частности - было необходимо, чтобы пользователи фермы **Citrix XenApp** могли сканировать с сетевых (Ethernet) сканеров (МФУ HP). То есть на каждом терминальном сервере должны быть установлены все сканеры, а пользователь получал бы доступ к одному из них (или нескольким) в зависимости от того, включен он в группу, соответствующую этому сканеру. \\
  
 +====== Архитектура и компоненты ======
 +В качестве программной части скан-сервера выступает [[http://www.sane-project.org/|SANE]], который предоставляет унифицированный интерфейс для доступа к разнообразным сканирующим устройствам. \\
 +В качестве унифицированного драйвера для Windows выступил [[https://github.com/mback2k/wiasane|WIASANE]]. Это драйвер для Windows, позволяющий сканировать по протоколу **SANE**. В системе устанавливается **WIA (Windows Image Acquisition)** устройство, обращения к которому перенаправляются к устройству по протоколу **SANE**.
 +
 +====== Настройка скан-сервере SANE ======
 +
 +===== Установка SANE на Ubuntu 14.04 =====
 +
 +  sudo apt-get install sane sane-utils libsane-extras
 +  
 + Затем как предписывает документация нужно проверить тут http://www.sane-project.org/sane-mfgs.html, что сканнер поддерживается и включить в файле **/etc/sane.d/dll.conf** соответствующий **backend** (раскомментировав нужную строку).
 +После этого включаем sane в режим сервера. В файлике **/etc/default/saned** прописываем:
 +  # Set to yes to start saned                                                     
 +  RUN=yes  
 +
 +И прописываем сеть из которой будет доступен демон **saned** в файлике: **/etc/sane.d/saned.conf**.
 +Там можно указать как отдельный хост, так и целую сеть. Для того, чтобы дать доступ к saned с любого IP-адреса нужно добавить строку с одним символом **+** (плюсик).
 +
 +Мне нужно настроить работу SANE с МФУ HP M521 и 1536.
 +Поэтому - ставим модуль **libsane-hpaio**, который будет работать с сетевым интерфейсом **hpaio**:
 +  sudo apt-get install libsane-hpaio
 +Если нужного модуля нет, то в дальнейшем команда **scanimage -L** будет вываливаться с ошибкой **Segmentation fault (core dumped)**.
 +
 +На всякий случай проверяем наличие в файлике **/etc/services** строки:
 +  sane-port 6566/tcp sane saned # SANE
 +  
 +
 +===== Тестирование SANEd =====
 +Во первых - можно включить тестовый бекенд **test**. Для этого в файлике **/etc/sane.d/dll.conf** нужно раскомментировать/добавить строку **test**. В результате сервер начнет отдавать пару сканеров:
 +  device `net:localhost:test:0' is a Noname frontend-tester virtual device
 +  device `net:localhost:test:1' is a Noname frontend-tester virtual device
 +
 +Если сервер sane работает как-то не так, то можно запустить его в режиме дебага, в котором он будет выдавать много полезной информации. Для начала нужно остановить его командой:
 +  sudo /etc/init.d/saned stop
 +И запустить в debug-режиме:
 +  sudo /usr/sbin/saned -d
 +Или в более подробном варианте:
 +  sudo /usr/sbin/saned -d128
 +  
 +C какой-либо рабочей станции с Linux (на которой установлены **sane sane-utils libsane-extras**) можно попробывать подключиться к saned:
 +  scanimage -d net:<ip adderss of saned>:test -T
 +Если все хорошо, то вывод будет примерно такой:
 +  scanimage: scanning image of size 157x196 pixels at 8 bits/pixel
 +  scanimage: acquiring gray frame, 8 bits/sample
 +  scanimage: reading one scanline, 157 bytes...   PASS
 +  scanimage: reading one byte...          PASS
 +  scanimage: stepped read, 2 bytes...     PASS
 +  scanimage: stepped read, 4 bytes...     PASS
 +  scanimage: stepped read, 8 bytes...     PASS
 +  scanimage: stepped read, 16 bytes...    PASS
 +  scanimage: stepped read, 32 bytes...    PASS
 +  scanimage: stepped read, 64 bytes...    PASS
 +  scanimage: stepped read, 128 bytes...   PASS
 +  scanimage: stepped read, 256 bytes...   PASS
 +  scanimage: stepped read, 255 bytes...   PASS
 +  scanimage: stepped read, 127 bytes...   PASS
 +  scanimage: stepped read, 63 bytes...    PASS
 +  scanimage: stepped read, 31 bytes...    PASS
 +  scanimage: stepped read, 15 bytes...    PASS
 +  scanimage: stepped read, 7 bytes...     PASS
 +  scanimage: stepped read, 3 bytes...     PASS
 +
 +На рабочей станции с Linux можно прописать адрес сервера **saned**, чтобы команда **scanimage** знала откуда брать сканеры. Для этого редактируем файлик **/etc/sane.d/net.conf** и в конец дописываем IP-адрес сервера **saned**. 
 +
 +
 +
 +===== Установка устройств HP =====
 +Для работы с устройствами HP нужен пакет **HPLIP** (HP Linux Imaging and Printing System). Его можно либо скачать с сайта HP, либо из репозиториев Ubuntu. На Ubuntu 14.04.02 я устанавливал из репозиториев. 
 +  sudo apt-get install hplip
 +Поставилась версия 3.14.3 и с ней удалось сканировать по сети через **saned** с клиента Ubuntu.
 +
 +С сайта HP можно скачать гораздо более новую версию, но с ней у меня так и не получилось сканировать  по сети через **saned**. Но на всякий случай:
 +Скачиваем HPLIP - http://hplipopensource.com/hplip-web/gethplip.html
 +Скачиваем и ставим. Ставить рекомендуют под обычным пользюком (не под root):
 +  wget http://vorboss.dl.sourceforge.net/project/hplip/hplip/3.15.7/hplip-3.15.7.run
 +  chmod a+x hplip-3.15.7.run 
 +  ./hplip-3.15.7.run
 +Запускать инсталлер можно под обычным юзером. В процессе установки он попросит пароль чтобы выполнить установку от имени root.
 +
 +Если в интернет система выходит через proxy, то нужно объявить об этом до установки:
 +  export http_proxy=http://host.com:port/
 +  export ftp_proxy=http://host.com:port/
 +  export no_proxy=.domain.com
 +  export HTTP_PROXY=http://host.com:port/
 +  export FTP_PROXY=http://host.com:port/
 +А также прописать **http_proxy**, **https_proxy** и **ftp_proxy** в файлике **/etc/wgetrc**
 +   
 +А после установки нужно установить плагины:
 +  hp-plugin -i
 +А затем установить принтер/сканер:
 +  sudo hp-setup -i -a <ip address of printer>
 +Теперь сканер должен появляться при выполнении команды:
 +  scanimage -L
 +Если там его нет, то генерируем URI для этого сканера. Делать это необязательно, но во многих мануалах это действие присутствует:
 +  hp-makeuri <ip address of printer>
 +В выдаче будет строка типа: **hpaio:/net/HP_LaserJet_Pro_MFP_M521dn?ip=10.166.203.1**
 +Для поверки состояния сканера берем строку с URI сканера и подставляем в команду:
 +  scanimage --device=hpaio:/net/HP_LaserJet_Pro_MFP_M521dn?ip=10.166.203.1 -T
 +В результате должны вывалиться результаты тестов: PASSED.
 +
 +Команда
 +  scanimage -L
 +Должна выдавать список сканеров. Если она этого не делает, возможно, дело в файлике **/etc/cups/printers.conf**. В нем нужно заменить значение параметра  **DeviceURI**. Там может быть либо что-то про **socket**, а должно быть то что возвращает команда  **hp-makeuri** в строчке CUPS URI. Что-то типа **hp:/net/HP_LaserJet_Pro_MFP_M521dn?ip=10.166.203.1**. После правки этого файла нужно перезапустить **cups**:
 +  sudo /etc/init.d/cups restart
 +  
 +Теперь сканировать на сервере saned из командной строки можно так:
 +  scanimage --device "hpaio:/net/HP_LaserJet_Pro_MFP_M521dn?ip=10.166.203.1" --mode Color --resolution 300 > ~/scan.jpg
 +
 +Если списка сканеров нет совсем или там нет нужного. то можно включить дебаг:
 +  SANE_DEBUG_NET=128 SANE_DEBUG_DLL=128 scanimage -L
 +  
 +Сканировать с клиента Linux можно командой:
 +  scanimage --device "net:10.50.6.218:hpaio:/net/HP_LaserJet_Pro_MFP_M521dn?ip=10.166.203.1" --mode Color --resolution 300 > ~/scan.jpg
 +Тут укаываем, что используем бекэнд **net**, затем через двоеточие адрес сервера **saned** и затем **URI** сканера.\\
 +\\
 +Иногда бывает, что сканер поставился, но при попытках сканировать сообщает: **Error during device I/O**. Вероятно нужно удалить его и поставить снова.
 +
 +===== Удаление принтера-сканера =====
 +Обычно на сервере сканирования устанавливается несколько принтеров одинаковой модели. Для того, чтобы узнакть какой именно принтер надо удалить - открываем файлик **/etc/cups/printers.conf** и ищем по IP-адресу как именно называется устройство.
 +  sudo cat /etc/cups/printers.conf
 +  sudo hp-setup -i -r
 +  
 +====== Настройка фронтэндов под Windows ======
 +===== WiaSane =====
 +**wiasane** - это обертка для **sane**, которая предоставляет WIA интерфейс к сканерам **saned**. \\
 +Настроить wiasane (0.1.1.9) с устройствами **hpaio:/net/...** удалось только после патчинга драйверов **HPLIP**. Со стандартным драйвером программа пытается получать список сканеров с сервера **sane**, но сервер не отдает эти устройства. Помогает патчинг драйвера. Смотри ниже. \\
 +Рабочая сборка - {{:linux_faq:sane_wia_driver.zip|}}. Она доработана для того, чтобы прописывать сканеры скриптом.
 +Если возникают проблемы с установкой драйвера (он просто не ставится), то скорее всего не установлен [[https://www.microsoft.com/en-us/download/confirmation.aspx?id=30679|Visual C++ Redistributable for Visual Studio]] \\
 +
 +Скрипт для пакетного прописывания сканеров такой: 
 +<code>devsane.exe device uninstall wiasane.inf
 +devsane.exe driver uninstall wiasane.inf
 +devsane.exe driver install wiasane.inf
 +del /f /q "c:\Program Files\SANE WIA Driver\_device install.log"
 +
 +devsane.exe device install wiasane.inf -x=1 "-f=M1530 Gilyar 6" -h=10.50.6.218 -p=6566 -r=hpaio:/net/HP_LaserJet_M1536dnf_MFP?ip=10.90.32.74 -u= -s= "-l=c:\Program Files\SANE WIA Driver\_device install.log"
 +devsane.exe device install wiasane.inf -x=1 "-f=M1530 Gilyar 7" -h=10.50.6.218 -p=6566 -r=hpaio:/net/HP_LaserJet_M1536dnf_MFP?ip=10.90.32.6 -u= -s= "-l=c:\Program Files\SANE WIA Driver\_device install.log"
 +devsane.exe device install wiasane.inf -x=1 "-f=M521 Volokolamsk" -h=10.50.6.218 -p=6566 -r=hpaio:/net/HP_LaserJet_M1536dnf_MFP?ip=10.166.243.200 -u= -s= "-l=c:\Program Files\SANE WIA Driver\_device install.log"
 +devsane.exe device install wiasane.inf -x=1 "-f=M521 PavlPosad" -h=10.50.6.218 -p=6566 -r=hpaio:/net/HP_LaserJet_Pro_MFP_M521dn?ip=10.166.203.1 -u= -s= "-l=c:\Program Files\SANE WIA Driver\_device install.log"
 +devsane.exe device install wiasane.inf -x=1 "-f=M521 ul.Dm.Ulyanova" -h=10.50.6.218 -p=6566 -r=hpaio:/net/HP_LaserJet_Pro_MFP_M521dn?ip=10.166.204.2 -u= -s= "-l=c:\Program Files\SANE WIA Driver\_device install.log"
 +devsane.exe device install wiasane.inf -x=1 "-f=M521 Schelkovo" -h=10.50.6.218 -p=6566 -r=hpaio:/net/HP_LaserJet_Pro_MFP_M521dn?ip=10.166.234.3 -u= -s= "-l=c:\Program Files\SANE WIA Driver\_device install.log"
 +devsane.exe device install wiasane.inf -x=1 "-f=M521 Orehovo-Zuevo" -h=10.50.6.218 -p=6566 -r=hpaio:/net/HP_LaserJet_Pro_MFP_M521dn?ip=10.166.207.1 -u= -s= "-l=c:\Program Files\SANE WIA Driver\_device install.log"
 +devsane.exe device install wiasane.inf -x=1 "-f=M521 Kolomna" -h=10.50.6.218 -p=6566 -r=hpaio:/net/HP_LaserJet_Pro_MFP_M521dn?ip=10.166.225.2 -u= -s= "-l=c:\Program Files\SANE WIA Driver\_device install.log"
 +devsane.exe device install wiasane.inf -x=1 "-f=M521 Kozhuhovo" -h=10.50.6.218 -p=6566 -r=hpaio:/net/HP_LaserJet_Pro_MFP_M521dn?ip=10.166.226.1 -u= -s= "-l=c:\Program Files\SANE WIA Driver\_device install.log"
 +devsane.exe device install wiasane.inf -x=1 "-f=M521 Chehov" -h=10.50.6.218 -p=6566 -r=hpaio:/net/HP_LaserJet_Pro_MFP_M521dn?ip=10.166.211.1 -u= -s= "-l=c:\Program Files\SANE WIA Driver\_device install.log"
 +devsane.exe device install wiasane.inf -x=1 "-f=M521 Kashira" -h=10.50.6.218 -p=6566 -r=hpaio:/net/HP_LaserJet_Pro_MFP_M521dn?ip=10.166.237.10 -u= -s= "-l=c:\Program Files\SANE WIA Driver\_device install.log"
 +devsane.exe device install wiasane.inf -x=1 "-f=M521 Lobnya" -h=10.50.6.218 -p=6566 -r=hpaio:/net/HP_LaserJet_Pro_MFP_M521dn?ip=10.166.223.2 -u= -s= "-l=c:\Program Files\SANE WIA Driver\_device install.log"
 +devsane.exe device install wiasane.inf -x=1 "-f=M521 Podolsk" -h=10.50.6.218 -p=6566 -r=hpaio:/net/HP_LaserJet_Pro_MFP_M521dn?ip=10.166.214.2 -u= -s= "-l=c:\Program Files\SANE WIA Driver\_device install.log"
 +devsane.exe device install wiasane.inf -x=1 "-f=M521 Shatura" -h=10.50.6.218 -p=6566 -r=hpaio:/net/HP_LaserJet_Pro_MFP_M521dn?ip=10.166.244.2 -u= -s= "-l=c:\Program Files\SANE WIA Driver\_device install.log"
 +devsane.exe device install wiasane.inf -x=1 "-f=M521 Klin" -h=10.50.6.218 -p=6566 -r=hpaio:/net/HP_LaserJet_Pro_MFP_M521dn?ip=10.166.209.3 -u= -s= "-l=c:\Program Files\SANE WIA Driver\_device install.log"
 +devsane.exe device install wiasane.inf -x=1 "-f=M521 Noginsk" -h=10.50.6.218 -p=6566 -r=hpaio:/net/HP_LaserJet_Pro_MFP_M521dn?ip=10.166.215.2 -u= -s= "-l=c:\Program Files\SANE WIA Driver\_device install.log"
 +devsane.exe device install wiasane.inf -x=1 "-f=M521 Egor'evsk" -h=10.50.6.218 -p=6566 -r=hpaio:/net/HP_LaserJet_Pro_MFP_M521dn?ip=10.166.229.2 -u= -s= "-l=c:\Program Files\SANE WIA Driver\_device install.log"
 +devsane.exe device install wiasane.inf -x=1 "-f=M521 Zheleznodorozhnyj" -h=10.50.6.218 -p=6566 -r=hpaio:/net/HP_LaserJet_Pro_MFP_M521dn?ip=10.166.239.1 -u= -s= "-l=c:\Program Files\SANE WIA Driver\_device install.log"
 +devsane.exe device install wiasane.inf -x=1 "-f=M521 B.Tishinskiy" -h=10.50.6.218 -p=6566 -r=hpaio:/net/HP_LaserJet_Pro_MFP_M521dn?ip=10.166.206.2 -u= -s= "-l=c:\Program Files\SANE WIA Driver\_device install.log"
 +devsane.exe device install wiasane.inf -x=1 "-f=M521 Balashiha" -h=10.50.6.218 -p=6566 -r=hpaio:/net/HP_LaserJet_Pro_MFP_M521dn?ip=10.166.233.2 -u= -s= "-l=c:\Program Files\SANE WIA Driver\_device install.log"
 +devsane.exe device install wiasane.inf -x=1 "-f=M521 Mytishi" -h=10.50.6.218 -p=6566 -r=hpaio:/net/HP_LaserJet_Pro_MFP_M521dn?ip=10.166.217.2 -u= -s= "-l=c:\Program Files\SANE WIA Driver\_device install.log"
 +devsane.exe device install wiasane.inf -x=1 "-f=M521 Lubertsy" -h=10.50.6.218 -p=6566 -r=hpaio:/net/HP_LaserJet_Pro_MFP_M521dn?ip=10.166.221.2 -u= -s= "-l=c:\Program Files\SANE WIA Driver\_device install.log"
 +devsane.exe device install wiasane.inf -x=1 "-f=M521 Zvenigorod" -h=10.50.6.218 -p=6566 -r=hpaio:/net/HP_LaserJet_Pro_MFP_M521dn?ip=10.166.218.1 -u= -s= "-l=c:\Program Files\SANE WIA Driver\_device install.log"
 +</code>
 +===== SaneWinDS =====
 +Может сканировать. Удается вставить URI сканера в соотвествующее поле и сканировать. Но сам фронтенд (версия 0.9.5589) пока что очень убогий и годится только для тестов.
 +
 +===== SwingSane =====
 +Не удалось.
 +
 +====== Патчим драйвер hplip чтобы работали сканеры net:_saned_IP_:hpaio:/net/HP_ ======
 +Если при попытке прописать сканер **wiasane** не обнаружвает сканер, то, скорее это связано с багом в библиотеках **hplip** на сервере saned. Исправить ситуацию можно собрав **hplip** из исходников и применив патч, описанный тут: https://sourceforge.net/p/hplip/mailman/message/2564768/ \\
 +
 +Останавливаем **saned**:<code>sudo /etc/init.d/saned stop</code>
 +Удаляем старый **hplip**:<code>sudo apt-get remove hplip</code>
 +Cкачиваем исходники драйвера: <code>wget http://downloads.sourceforge.net/project/hplip/hplip/3.15.7/hplip-3.15.7_py2.5.tar</code>
 +Рядом с распакованным архивом кладем патч {{:linux_faq:hplip_sane_patch_and_make.rar|}} (**hplip-sane-patch.sh** и **hplip-sane-patch.diff**) распаковываем и применяем его:<code>chmod a+x ./hplip-sane-patch.sh && ./hplip-sane-patch.sh</code>
 +  
 +Дальше собираем по инструкции:<code>http://hplipopensource.com/hplip-web/install/manual/distros/ubuntu.html</code>
 +Для **Ubuntu 14.04** будет так:   
 +Ставим зависимости:<code>sudo apt-get install --assume-yes build-essential avahi-utils libcups2 cups libcups2-dev cups-bsd cups-client libcupsimage2-dev libdbus-1-dev build-essential ghostscript openssl libjpeg-dev libsnmp-dev snmp-mibs-downloader libtool libusb-1.0.0-dev wget policykit-1 policykit-1-gnome python3-dbus python3-gi python3-dev python3-notify2 python3-pil python3-pyqt4 gtk2-engines-pixbuf python3-dbus.mainloop.qt python3-reportlab python3-lxml libsane libsane-dev sane-utils xsane</code>
 +Конфигурим:<code>./configure --with-hpppddir=/usr/share/ppd/HP --libdir=/usr/lib --prefix=/usr --enable-qt4 --disable-libusb01_build --enable-doc-build --disable-cups-ppd-install --disable-foomatic-drv-install --disable-foomatic-ppd-install --disable-hpijs-install --disable-udev_sysfs_rules --disable-policykit --enable-cups-drv-install --enable-hpcups-install --enable-network-build --enable-dbus-build --enable-scan-build --enable-fax-build</code>
 +Компилим:<code>make</code>
 +Ставим:<code>make install</code>
 +Затем ставим плагин:
 +  hp-plugin -i
 +И собственно принтер/сканер:
 +  sudo hp-setup -i -a <ip address of printer>
 +
 +Теперь можно запустить **saned**, настроить на клиенте backend net и проверяем с удаленного клиента:<code>sudo /etc/init.d/saned start</code>
 +
 +И на клиенте проверяем:<code>scanimage -L</code>
 +  
 +====== Прописываем пользователям сканеры в NAPS2 в соответствии с группами AD ======
 +Для сканирования я применяю бесплатную опенсорсную утилитку **NAPS2** - http://sourceforge.net/projects/naps2/ \\
 +Если на терминальном сервере много сканеров, то пользователю неудобно выбирать каждый раз нужный.
 +Можно создавать профили **NAPS2** в зависимости от того, в какие группы входит пользователь.\\
 +Каждому сканеру сопоставлена групппа. Если пользовтаель входит в группу - ему пропишется нужный сканер. Названия групп и сканеров разные, потому что группы изначально использовались для прописывания принтеров. Но можно сделать их одинаковыми и тогда скриптец немного упростится. \\
 +Вот этот скриптец VBS для прописывания сканеров в **NAPS2**:
 +<code>Dim dicScanGroups, arrGroups
 +Set dicScanGroups = CreateObject("Scripting.Dictionary")
 +'Заполняем словарь групп-сканеров. 
 +''''''''''''''''''''Key - имя группы, Value - имя сканера
 +dicScanGroups.Add "Prn_1536_Gilyar6","M1530 Gilyar 6"
 +dicScanGroups.Add "Prn_1536_Gilyar7","M1530 Gilyar 7"
 +dicScanGroups.Add "Printer_Chehov_M521","M521 Chehov"
 +dicScanGroups.Add "Printer_Egorevsk_M521","M521 Egor'evsk"
 +dicScanGroups.Add "Printer_Kolomna_M521","M521 Kolomna"
 +dicScanGroups.Add "Printer_Podolsk_M521","M521 Podolsk"
 +dicScanGroups.Add "Printer_Scholkovo_HP_MFP","M521 Schelkovo"
 +dicScanGroups.Add "Printer_B_Tishinskiy_M521","M521 B.Tishinskiy"
 +dicScanGroups.Add "Printer_Balashiha_M521","M521 Balashiha"
 +dicScanGroups.Add "Printer_ul.Dm.Ulyanova_HP521","M521 ul.Dm.Ulyanova"
 +dicScanGroups.Add "Printer_Lobnya_M521","M521 Lobnya"
 +dicScanGroups.Add "Printer_Lubertsy_M521","M521 Lubertsy"
 +dicScanGroups.Add "Printer_Mytishi_M521","M521 Mytishi"
 +dicScanGroups.Add "Printer_Pavlovskiy_Posad_M521","M521 PavlPosad"
 +dicScanGroups.Add "Printer_Volokolamsk_M521","M521 Volokolamsk"
 +dicScanGroups.Add "Printer_Zvenigorod_M521","M521 Zvenigorod"
 +dicScanGroups.Add "Prn_HP521_Zheleznodorozhnyj","M521 Zheleznodorozhnyj"
 +dicScanGroups.Add "Printer_Kashira_M521","M521 Kashira"
 +dicScanGroups.Add "Prn_Klin_M521","M521 Klin"
 +dicScanGroups.Add "Prn_M521_Noginsk_def","M521 Noginsk"
 +dicScanGroups.Add "Printer_Orehovo-Zuevo_M521","M521 Orehovo-Zuevo"
 +dicScanGroups.Add "Printer_Shatura_M521","M521 Shatura"
 +
 +arrGroups = dicScanGroups.Keys
 +
 +Dim intCount, strGroup, ScannerName, ScanerDevName, ScannerID
 +Dim objDeviceManager, i, objFSO, ProfileFile, DesktopPath
 +
 +Set objUser = CreateObject("ADSystemInfo")
 +Set CurrentUser = GetObject("LDAP://" & objUser.UserName)
 +strGroup = LCase(Join(CurrentUser.MemberOf))
 +
 +Set objFSO = CreateObject("Scripting.FileSystemObject")
 +
 +Set Shell = CreateObject("WScript.Shell")
 +Set DeviceManager = Wscript.createObject("WIA.DeviceManager")
 +
 +'создаем папку и файл %APPDATA%\NAPS2\profiles.xml
 +Call Shell.Run("%COMSPEC% /c mkdir ""%APPDATA%\NAPS2""",0,true)
 +''objFSO.CreateFolder(Shell.expandEnvironmentStrings("%APPDATA%") & "\NAPS2")
 +Set ProfileFile = objFSO.CreateTextFile(Shell.expandEnvironmentStrings("%APPDATA%") & "\NAPS2\profiles.xml", True)
 +ProfileFile.WriteLine "<?xml version=" & """" & "1.0" & """" & "?>"
 +ProfileFile.WriteLine "<ArrayOfExtendedScanSettings xmlns:xsi="&""""&"http://www.w3.org/2001/XMLSchema-instance"&"""" & " xmlns:xsd="&""""&"http://www.w3.org/2001/XMLSchema"&""""&">"
 +
 +'Перебираем группы из словарика и и если группа есть у пользюка то
 +For intCount = 0 to dicSCanGroups.count - 1
 +ScannerName = dicScanGroups.Item(arrGroups(intCOunt))
 +If InStr(strGroup, lcase(arrGroups(intCount))) Then
 +'Создаем ярлык на утилитку сканирования
 +DesktopPath = Shell.SpecialFolders("Desktop")
 +Set oShortCut = Shell.CreateShortcut(DesktopPath & "\ScanTool.lnk")
 +oShortCut.TargetPath = "C:\ScanTool\NAPS2.exe"
 +oShortCut.Save
 +'перебираем сканеры чтобы найти DevID
 + For i = 1 to DeviceManager.DeviceInfos.Count
 + ScanerDevName = DeviceManager.DeviceInfos(i).Properties("Name").Value
 + ScannerID = DeviceManager.DeviceInfos(i).DeviceID
 + If StrComp(ScanerDevName, ScannerName, vbTextCompare) = 0 Then
 + 'прописываем сканер в файлик
 + ProfileFile.WriteLine "  <ExtendedScanSettings>"
 + ProfileFile.WriteLine "    <Device>"
 + ProfileFile.WriteLine "      <ID>" & ScannerID & "</ID>"
 + ProfileFile.WriteLine "      <Name>" & ScanerDevName & "</Name>"
 + ProfileFile.WriteLine "    </Device>"
 + ProfileFile.WriteLine "    <DriverName>wia</DriverName>"
 + ProfileFile.WriteLine "    <DisplayName>" & ScanerDevName & "</DisplayName>"
 + ProfileFile.WriteLine "    <IconID>0</IconID>"
 + ProfileFile.WriteLine "    <MaxQuality>false</MaxQuality>"
 + ProfileFile.WriteLine "    <IsDefault>true</IsDefault>"
 + ProfileFile.WriteLine "    <Version>1</Version>"
 + ProfileFile.WriteLine "    <UseNativeUI>false</UseNativeUI>"
 + ProfileFile.WriteLine "    <AfterScanScale>OneToOne</AfterScanScale>"
 + ProfileFile.WriteLine "    <Brightness>0</Brightness>"
 + ProfileFile.WriteLine "    <Contrast>0</Contrast>"
 + ProfileFile.WriteLine "    <BitDepth>C24Bit</BitDepth>"
 + ProfileFile.WriteLine "    <PageAlign>Left</PageAlign>"
 + ProfileFile.WriteLine "    <PageSize>Letter</PageSize>"
 + ProfileFile.WriteLine "    <Resolution>Dpi200</Resolution>"
 + ProfileFile.WriteLine "    <PaperSource>Glass</PaperSource>"
 + ProfileFile.WriteLine "  </ExtendedScanSettings>"
 + End If
 + Next
 +End If
 +Next
 +ProfileFile.WriteLine "</ArrayOfExtendedScanSettings>"
 +ProfileFile.Close
 +</code>
  • linux_faq/настройка_wiasane_sane.txt
  • Last modified: 2019/05/14 07:52
  • by admin