Обсуждение статьи тематического каталога: Организация сетевого доступа сотрудников офиса к сканеру (scanner hardware driver linux)Ссылка на текст статьи: http://www.opennet.me/base/sys/net_scanner.txt.html
Молодца :)
Давно искал реализации подобной фичи.Ещё можно подумать о реализации remote интерфейса, для запуска сканирования по net-message/письму
>Ещё можно подумать о реализации remote интерфейса, для запуска сканирования по net-message/письмуАга, чтобы сканируемый документ тоже в письме/net-message прилетал. :)
Да... Вот еще бы оригинал в сканер тоже письмом...
Все гениальное просто. Молодец. Красиво все выглядит. А как в работе. Народ доволен?
Огромное спасибо!
Очень сложно!
Гораздо проще купить сканер с кнопкой "сканирование" и расшарить на виндовом компьютере, куда он подключен, папку "Мои документы/Мои рисунки"
Подскажите, как сделать сетевой сканер с удаленным интерфейсом управления параметрами сканера и передачи изображения в мою программу.
Угумс, заплатить за покупку отдельного компа для подключения сетевого сканера, плюс за винды, плюс за антивирус, и т.д. и т.п. А так подключаем к работающему файл-серверу сканер и не парим мозги.
хы, прульки на Цэ... Я б на Перле такое писал.... Но все равно интересно. Еще только клаву осталось похакать (ножовкой по металлу)
есть уже давно и saned и sanetwain и даже xsane/win32, зачем выдумывать?
Немного переделанная autoscanner.c по клавише "1" - сканируем в JPG, "2" - в PDF
#include <curses.h>
#include <stdio.h>
#include <sys/types.h>
#include <fcntl.h>
#include <sys/stat.h>
#include <linux/kd.h>
#include <sys/ioctl.h>
#include <time.h>
int main()
{
char command_str[500];
int c;
time_t t;
struct tm tim;
int fd = open("/dev/console",O_RDONLY); //системный динамик
initscr(); // подготавливаем дисплей
timeout(-1);
noecho();
cbreak();
keypad(stdscr,TRUE);
do{
c = getch(); //ждем нажатия клавиши
time(&t); // текущее время
localtime_r(&t,&tim); // преобразуем в человеческий формат
switch(c)
{
case 10: // клавиша "Enter"
case 49: // клавиша "1"
case 360: // клавиша "1" на стрелочках
sprintf(command_str,
"scanimage -d epson:libusb:001:002 --mode Color --resolution 150 > /tmp/temp1.pnm && convert --sharpen 50 /tmp/temp1.pnm /scan/%04d_%02d_%02d_%02d_%02d_%02d.jpg && rm -f /tmp/temp1.pnm;",tim.tm_year+1900,tim.tm_mon+1,tim.tm_mday,tim.tm_hour,tim.tm_min,tim.tm_sec);
system(command_str); //сканируемsleep(11); //ждем пока сканер вернет
//каретку (подбираем время экспериментально)
// ioctl(fd,KDMKTONE,(600<<16)+1190); // бикаем динамикомbreak;
case 50: // клавиша "2"
case 258: // клавиша "2" на стрелочках
sprintf(command_str,
"scanimage -d epson:libusb:001:002 --mode Color --resolution 150 > /tmp/out.pnm && convert -density 150 /tmp/*.pnm /tmp/out.ps && ps2pdf /tmp/out.ps /scan/%04d_%02d_%02d_%02d_%02d_%02d.pdf && rm -f /scan/*.pnm;rm -f /tmp/out.ps;rm -f /out.pnm",tim.tm_year+1900,tim.tm_mon+1,tim.tm_mday,tim.tm_hour,tim.tm_min,tim.tm_sec);
system(command_str);
sleep(11);
//ioctl(fd,KDMKTONE,(600<<16)+1190);
break;
default: // бикаем динамиком если клавиша неизвестнаioctl(fd,KDMKTONE,(200<<16)+1190);
}
timeout(0); // снимаем режим ожидания нажатия клавиши
while (getch()!=ERR)
; // вычищаем буфер клавиатуры, если успели понажимать на кнопки
timeout(-1); // включаем режим ожидания нажатия клавиши
}while(c!=101); // клавиша "Е" - Выход из программы, можно убрать чтоб
// пользователи случайно не нажали
endwin(); // при выходе возвращаем дисплей в исходное состояние
}
Извращенцы, купите HP Digital Sender!
Идея отличная.
сейчас уже появилась программа для перехвата управления кнопками самого сканера под линух.
называется scanbuttond.
под FreeBSD не смог заставить найти свой сканер, хотя под Suse всё заработало на ура.
http://gentoo-wiki.com/Scanner_buttons_and_one-touch_scannin...