|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
27.10.2011, 17:20 | #1 |
Форумчанин
Регистрация: 09.02.2011
Сообщений: 150
|
TWAIN сканер: дуплексный режим
Мне необходимо быстро разобраться в такой задаче: доработать существующий софт, читающий данные со сканера по протоколу TWAIN. Текущая версия этого софта рассчитана на сканирование одной страницы за раз. Грубо говоря: мы нажали в нашем GUI кнопку, считали первую пришедшую картинку со сканера (по сообщению TransferReady), и на этом всё.
Мне нужно доработать эту программу так чтобы она: - Распознала (сама, без явного указания пользователя) в каком режиме поступают отсканированные изображения – simplex или duplex. - Сложить принятые изображения в массив. Если это был simplex режим, то в каждом элементе массива должна быть одна картинка. Если это был duplex режим, то в каждом элементе массива должно быть две картинки – одна для верхней стороны и вторая для нижней Вопрос; как это сделать? -:) Я вижу в TWAIN константы CAP_DUPLEX и CAP_DUPLEXENABLED; но пока не могу сообразить – как их использовать в этой моей задаче. В частности мне непонятно: 1. Всегда ли моё Приложение может рассчитывать, что оно ТОЧНО знает – в каком режиме в данный момент поступают изображения со сканера, и как именно они поступают? Или бывают ситуации когда это в принципе неизвестно? 2. Я считал что моё Приложение само не будет пытаться ‘заставить’ сканер работать в duplex mode. Пользователь выберет (кнопками на сканере или в некоем софте сканера) нужный режим, а моё приложение распознает его. Это – правильное предположение? А то я пока даже duplex сканера в глаза не видел; не знаю как он выглядит |
27.10.2011, 21:01 | #2 | ||||
Старожил
Регистрация: 22.05.2007
Сообщений: 9,065
|
Цитата:
Цитата:
Цитата:
На работе есть МФУ Canon ir2018 с автоподатчиком. Автоподатчик умеет двухстороннее сканирование, правда я его использовал только для ксерокопий. Как-то пытался несколько страниц из автоподатчика отсканить, но так и не нашел бесплатную программу, которая умела TWAIN и получала все страницы с устройства (какие пробовал - прогоняли все страницы, но сохраняли только первую). Так что, если такой сканер устроит и скажете как это сделать (прога может есть, которая при сканировании записывает всю "переписку" с устройством, чтобы узнать какие параметры последнее передавало на комп), могу предоставить инфу что он там по TWAIN на разных настройках гоняет. Есть еще пара МФУ (самсунг и еще один сапоп), но они дуплекс помойму не умеют. А вот чисто сканеров с дуплексом нету и я их тоже не видел, но разницы в TWAIN быть не должно по идее. Цитата:
|
||||
28.10.2011, 12:24 | #3 |
Форумчанин
Регистрация: 09.02.2011
Сообщений: 150
|
"Помойму эта хрень задаётся в TWAIN диалоге сканера и распознавать тут нечего. Разве что серьезные промышленные сканеры, которые сканируют за раз обе стороны, сами определяют пустые стороны и включают/отключают дуплекс. У меня на работе только МФУ с автоподатчиком и ему нужно явно указать: сканировать с обеих сторон или с одной. Он тупо сканит одну сторону, потом переворачивает лист, сканирует вторую сторону, переворачивает назад как было и выплёвывает лист. С отключенным дуплексом, он соответственно, ничего переворачивать не будет и отсканит одну сторону."
------------ Хорошо, допустим у меня будет именно такой сценарий. В этом случае моему Приложению как раз и нужно как-то 'распознать', в каком режиме сейчас (в данным момент) работает сканер - дуплексном или простом? Если в простом, то Приложение интерпретирует поступающие изображения как: Лист_1_Сторона_1, Лист_2_Сторона_1, ...... Если в дуплексном, то Приложение интерпретирует поступающие изображения как Лист_1_Сторона_1, Лист_1_Сторона_2, Лист_2_Сторона_1, Лист_2_Сторона_2,.... То есть я могу в GUI своего приложения заставит пользователя явно указать, в каком режиме работает сейчас сканер. Да, так можно, и тогда ничего не надо 'распознавать'. Но я всё0таки зхотел бы чтобы Приложенеи распознало это само, без пользователя. Вот этому и посвящена тема. |
28.10.2011, 14:23 | #4 | |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,065
|
Цитата:
http://www.twain.org/docs/TWAIN_2_1_Spec.pdf Судя по этому документу, TWAIN версии 2.1 умеет автоматически объединять обе стороны в один файл (см. TWEI_IMAGEMERGED) Так же там есть сообщение MSG_GETCURRENT, которое, как я понял, возвращает текущие настройки и там можно про дуплекс узнать. |
|
29.10.2011, 23:36 | #5 | |
Форумчанин
Регистрация: 09.02.2011
Сообщений: 150
|
Цитата:
Вот из описания CAP_DUPLEX я вижу: эта опция говорит что сканер поддерживает duplex ‘в принципе’. Но мне этого мало: я хочу знать, в каком режиме работает сканер В ДАННЫЙ МОМЕНТ. В описании же CAP_DUPLEXENABLED сказано: “Application should send MSG_GET to determine if the duplex option is enabled or not”. Это то что мне надо? Запрошу текущее значение CAP_DUPLEXENABLED и пойму – в каком режиме СЕЙЧАС работает сканер? Или я неправильно всё понял? Пока я просто не уверен. |
|
30.10.2011, 08:47 | #6 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,065
|
Судя по спецификации, да. Нужно смотреть на CAP_DUPLEXENABLED.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
работа с Twain | Qwed | Помощь студентам | 0 | 22.10.2011 23:55 |
ActiveX, TWAIN | gojohnygo | Помощь студентам | 1 | 29.09.2008 13:20 |
Twain или работа со сканером в Delphi | D-mon | Win Api | 2 | 08.12.2007 17:23 |
Взаимодействие с twain | jonbc | Win Api | 4 | 06.04.2007 23:35 |