Добрый
день. Хочу поделиться опытом установки
скансервера на базе Ubuntu Server
Сервер
сканирования позволяет сканировать с
любого компьютера в сети без установки
специального ПО. Все функции сканирования
возлагаются на один компьютер с серверным
ПО на базе Linux. Установка драйверов на
компьютеры пользователей не требуется.
С переходом от одной версии windows к другой
для пользователей ничего не меняется.
За
основу был взят проект PHiLLIP KliEWER
он
был раньше здесь http://scannerserver.online02.com
Но
сейчас проект прекратил свое развитие
и сайта нет.
Код
проекта сильно изменен, ибо оригинал
был сильно заброшен где-то посередине.
Архив
оригинала найдете по
ссылке http://yarvobler.narod.ru/scanserver/original/scan_1.1.9.tar
Отличия
от оригинала
1)
Самое главное предоставляется выбор
сканировать c автоподачи стопку бумаги
или один лист со стекла. При этом со
стекла сканируется в формат JPG. С
автоподачи в многостраничный PDF.
2)
Любое изображение JPG со стекла нажатием
одной кнопки переводится в PDF
3)
Ссылка на страницу конфигурации- там
где меняется цветовая тема и редактируется
конфигурация сканеров скрыта от
пользователей. Чтоб в корпоративной
среде любопытный пользователь случайно
не нарушил работоспособность системы.
4)
Все форматы кроме jpg и pdf не используются
при сканировании.
Рассмотрим
установку такового на Ubuntu 14.04 Server.
Нам
понадобятся web server apache2, утилиты
сканирования sane, утилиты для обработки
изображений netpbm и imagemagick.
Кроме
того, если мы работаем с техникой HP,
потребуется набор утилит и драйверов
Hewlett-Packard - hplip, samba — сервер для доступа
к истории сканирования через проводник
windows, ssh сервер для удаленного
управления.
samba
и ssh ставится еще при установке сервера,
остальное устанавливается командой
sudo
apt-get install sane-utils netpbm apache2 imagemagick
Установщик
hplip можно скачать (самую последнюю
версию) с официального
сайта
http://hplipopensource.com/hplip-web/gethplip.html
или
sudo
apt-get install hplip
(Тиражируя
проект на платформе ubuntu 16.04 понял
что ставить hplip лучше вторым способом,
ибо крайний hplip конфликтует с версией
python- но это косяки компании HP )
Установив
все пакеты и утилиты приступим к настройке
сканеров.
Устройства
Hewlett-Packard ставятся командой
sudo
hp-setup -i ip_адрес_сканера
в
процессе установки вам будет задано
несколько вопросов, на которые можно
отвечать нажатием ENTER, тогда будут
приняты ответы по умолчанию (помеченные
знаком *).
На
процесс сканирования эти параметры все
равно не повлияют.
проверить
наличие устройства сканирования
sudo
scanimage -L
Переходим
к настройке и установке сервера.
в
конфигурационный файл apache, который
находится здесь
/etc/apache2/apache2.conf
добавить
строку (разрешить исполнение
скриптов)
AddHandler
cgi-script .cgi
выполним
команду (подключение модуля исполнения
cgi для apache2)
sudo
a2enmod cgi
Теперь
настройка
сайта
/etc/apache2/sites-enabled/000-default
пример
настройки находится
здесь
http://yarvobler.narod.ru/scanserver/000-default.conf
главное
разрешить исполнение cgi
<Directory
/var/www/>
Options
Indexes FollowSymLinks MultiViews ExecCGI
AllowOverride
All
Order
allow,deny
allow
from all
</Directory>
Перезагрузим
apache2
sudo
service apache2 restart
Сам
код сервера разворачивается в /var/www
он
берется
отсюда
http://yarvobler.narod.ru/scanserver/scanserver.tgz
cd
/var/www
sudo
wget http://yarvobler.narod.ru/scanserver/scanserver.tgz
sudo
tar xvfz scanserver.tgz
После
этого запускается сервер
сканирования http://server_ip_address
Пользователь
для получения сканированного изображения
должен
1)
Выбрать сканер из выпадающего списка
сканеров.
2)
Выбрать источник сканирования: планшет
с одним листом или автоподатчик с пачкой
листов.
3)
определить качество сканирования или
пропустив этот этап сразу нажать кнопку
Scan Image.
4)
Полученные результаты сохранить на
свой компьютер. Одностраничный документ
в pdf или jpg. Многостраничный с автоподатчика
в pdf (один лист с автоподатчика все равно
будет считаться многостраничным
документом)
Конфигурация
сервера расположена в каталоге
/var/www/config
Сама
страница конфигурации закрыта от
случайного доступа пользователю, но мы
можем ее вызвать по секретной
ссылке http://server_ip_address/index.cgi?page=config
Все
доступные серверу сканеры для доступности
пользователю должны быть прописаны в
конфигурационный
файл
/var/www/config/scanners.conf
Он
представляет собой набор строк
вида
ID=номер
по порядку INUSE=0 DEVICE=Системное_имя
NAME=Произвольное имя понятное
пользователю
Например
ID=01
INUSE=0 DEVICE=hpaio:/net/HP_LaserJet_M2727nf_MFP?ip=10.5.7.20
NAME=K207 (ИТ) HP2727
Если
сканеров больше 9 то начинать нумерацию
ID 01,02… 99 обязательно c нуля первые 9. Для
9 сканеров и меньше можно обойтись без
нулей в номере ID.
Системное
имя можно узнать командой
scanimage
-L
Система
установлена и работает с более десятка
сканеров в корпоративной среде одного
из предприятий. На предприятии используется
только сканирующие устройства
производителя Hewlett-Packard. С устройствами
других производителей система не
тестировалась. Но это не значит ваш
сканер не будет работать, судя по архивам
форума умершего сайта проекта, люди
цепляли разные сканеры Canon, Mustec, Epson и не
только по ip, но и по USB. Если он доступен
через sane utils, то теоретически все будет
работать.
P.S.
В ходе эксплуатации системы возникла
потребность ограничить доступ к
сканированным документам специфических
отделов предприятия.
Один
из вариантов решения проблемы.
Если
документы забираются сотрудниками
предприятия только по web через браузер,
то в раздел на сервере /var/www/
надо
поместить файл с именем .htaccess и со
следующим содержанием
#allow
to view scans from scanner with id=01 only
client with ip=10.5.9.115
<Files
~ "(01.jpg)$">
Order
Deny,Allow
Deny
from all
Allow
from 10.5.9.115
</Files>
<Files
~ "(01.jpg.pdf)$">
Order
Deny,Allow
Deny
from all
Allow
from 10.5.9.115
</Files>
Вам
надо только прописать вместо 01 соответствующий
ID из /var/www/config/scanners.conf и ip
адрес или
адреса клиентов, которые будут видеть
документ с данного сканера. Остальные
не смогут увидеть даже миниатюры в
истории.
Разумеется
в файле конфигурации сайта
/etc/apache2/sites-enabled/000-default надо разрешить
исполнение .htaccess
Все
строки типа AllowOverride None заменить на
AllowOverride All.
Тогда
доступ к папке где хранятся сканы по
samba не рассматривается или решается по
вашему усмотрению.