Задача

У меня была задача - сделать скан-сервер (по аналогии с принт-сервером) для Windows-клиентов. То есть сервер, который бы предоставлял пользователям доступ к сканерам по сети. В результате должен получиться единый унифицированный интерфейс доступа к сканерам.
На клиентских машинах прописывается подключение к сканеру на скан-сервере с помощью унифицированного драйвера. А на скан-сервере уже подключение к физическому устройству с использованием драйвера, специфичного для данного устройства. Таким образом, даже физическая замена сканера на другое устройство будет приводить только к необходимости переконфигурирования устройства на скан-сервере, но не на клиентах.
В частности - было необходимо, чтобы пользователи фермы Citrix XenApp могли сканировать с сетевых (Ethernet) сканеров (МФУ HP). То есть на каждом терминальном сервере должны быть установлены все сканеры, а пользователь получал бы доступ к одному из них (или нескольким) в зависимости от того, включен он в группу, соответствующую этому сканеру.

Архитектура и компоненты

В качестве программной части скан-сервера выступает SANE, который предоставляет унифицированный интерфейс для доступа к разнообразным сканирующим устройствам.
В качестве унифицированного драйвера для Windows выступил WIASANE. Это драйвер для Windows, позволяющий сканировать по протоколу SANE. В системе устанавливается WIA (Windows Image Acquisition) устройство, обращения к которому перенаправляются к устройству по протоколу SANE.

Настройка скан-сервере SANE

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

Во первых - можно включить тестовый бекенд 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 нужен пакет 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 - это обертка для sane, которая предоставляет WIA интерфейс к сканерам saned.
Настроить wiasane (0.1.1.9) с устройствами hpaio:/net/… удалось только после патчинга драйверов HPLIP. Со стандартным драйвером программа пытается получать список сканеров с сервера sane, но сервер не отдает эти устройства. Помогает патчинг драйвера. Смотри ниже.
Рабочая сборка - sane_wia_driver.zip. Она доработана для того, чтобы прописывать сканеры скриптом. Если возникают проблемы с установкой драйвера (он просто не ставится), то скорее всего не установлен Visual C++ Redistributable for Visual Studio

Скрипт для пакетного прописывания сканеров такой:

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"

Может сканировать. Удается вставить URI сканера в соотвествующее поле и сканировать. Но сам фронтенд (версия 0.9.5589) пока что очень убогий и годится только для тестов.

Не удалось.

Патчим драйвер hplip чтобы работали сканеры net:_saned_IP_:hpaio:/net/HP_

Если при попытке прописать сканер wiasane не обнаружвает сканер, то, скорее это связано с багом в библиотеках hplip на сервере saned. Исправить ситуацию можно собрав hplip из исходников и применив патч, описанный тут: https://sourceforge.net/p/hplip/mailman/message/2564768/

Останавливаем saned:

sudo /etc/init.d/saned stop

Удаляем старый hplip:

sudo apt-get remove hplip

Cкачиваем исходники драйвера:

wget http://downloads.sourceforge.net/project/hplip/hplip/3.15.7/hplip-3.15.7_py2.5.tar

Рядом с распакованным архивом кладем патч hplip_sane_patch_and_make.rar (hplip-sane-patch.sh и hplip-sane-patch.diff) распаковываем и применяем его:

chmod a+x ./hplip-sane-patch.sh && ./hplip-sane-patch.sh

Дальше собираем по инструкции:

http://hplipopensource.com/hplip-web/install/manual/distros/ubuntu.html

Для Ubuntu 14.04 будет так: Ставим зависимости:

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

Конфигурим:

./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

Компилим:

make

Ставим:

make install

Затем ставим плагин:

hp-plugin -i

И собственно принтер/сканер:

sudo hp-setup -i -a <ip address of printer>

Теперь можно запустить saned, настроить на клиенте backend net и проверяем с удаленного клиента:

sudo /etc/init.d/saned start

И на клиенте проверяем:

scanimage -L

Прописываем пользователям сканеры в NAPS2 в соответствии с группами AD

Для сканирования я применяю бесплатную опенсорсную утилитку NAPS2 - http://sourceforge.net/projects/naps2/
Если на терминальном сервере много сканеров, то пользователю неудобно выбирать каждый раз нужный. Можно создавать профили NAPS2 в зависимости от того, в какие группы входит пользователь.
Каждому сканеру сопоставлена групппа. Если пользовтаель входит в группу - ему пропишется нужный сканер. Названия групп и сканеров разные, потому что группы изначально использовались для прописывания принтеров. Но можно сделать их одинаковыми и тогда скриптец немного упростится.
Вот этот скриптец VBS для прописывания сканеров в NAPS2:

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
Enter your comment. Wiki syntax is allowed:
 
  • linux_faq/настройка_wiasane_sane.txt
  • Last modified: 2019/05/14 07:52
  • by admin