Можно ли слушать двойной (может быть, WIA) сканер? - PullRequest
5 голосов
/ 05 ноября 2008

Я оцениваю контроль VintaSoft .net и захват изображений Atalasoft DotTwain. И я очень, но очень потерян с большинством определений и ключевых слов.

Итак, я спрашиваю об этом, потому что я думаю, что я нахожусь в стране Лала. Можно ли прослушать или заставить сканер сообщить моему приложению, что есть отсканированное изображение, и я могу его обработать?

Идея состоит в том, чтобы иметь winservice, который ждет, пока сканер что-то сканирует, и когда это происходит, обрабатывает изображение.

Ответы [ 4 ]

5 голосов
/ 05 ноября 2008

Я работал только с собственными интерфейсами для TWAIN и WIA, поэтому я не могу поручиться за эти другие слои поверх них. Однако, что касается TWAIN, существуют некоторые механизмы, которые позволяют уведомлять приложение для сбора данных. Я считаю, что это решается с помощью STI.dll, более старой библиотеки, которая доступна в Windows 2000+. Посмотрите StiCreateInstance для получения дополнительной информации.

Если вы решите пойти по маршруту WIA, это будет намного проще. Вы можете зарегистрироваться для получения событий, таких как кнопка «Сканирование» или «Созданное изображение». Тогда все, что вам нужно сделать, это обработать эти события, чтобы получить изображение. Самое сложное - найти оборудование, которое реализует нужные вам функции.

Microsoft имеет библиотеку автоматизации WIA, которая значительно упрощает многие из этих задач. Может использоваться языками сценариев.

4 голосов
/ 05 ноября 2008

Мы недавно включили TWAIN в одно из наших приложений. Мы рассмотрели WIA, но в итоге TWAIN стал гораздо более гибким и может подключаться к таким приложениям, как VRS (Virtual ReScan). В конце концов, это «тянуть», вы запрашиваете сканирование, а затем ждете сканера. Одна из приятных особенностей VRS заключается в том, что это программное обеспечение между нашими вызовами TWAIN и устройством, поэтому оно заботится о нескольких вещах, одна из которых заключается в том, что он может ждать практически вечно, пока бумага не будет помещена в загрузочный лоток. для сканирования. Это дает возможность «запустить» задание на сканирование и затем ждать бумагу, а также позволяет добавлять дополнительные страницы в устройство.

Если вы ищете что-то более ориентированное на push, посмотрите на сканер или многофункциональное устройство, поддерживающее ftp / smb / email и т. Д., И дайте ему возможность сканировать, и вы можете просто отслеживать папку или почтовый ящик POP3 для этой работы.

Вы также можете обратиться к устройствам MFP, которые включают (иногда за дополнительную плату) такие инструменты, как шаблон Xerox, Lexmark LDSS, HP DSS.

Вот ссылка на код .NET TWAIN, с которым мы основали интеграцию нашего сканера: http://www.codeproject.com/KB/dotnet/twaindotnet.aspx

3 голосов
/ 05 ноября 2008

[править - если бы это был я, я бы посмотрел на ответ adzm ;-p]

Насколько я понимаю, обычный TWAIN - это "тянуть", а не "толкать" от сканера. Я вполне могу ошибаться ...

Я ожидаю, что такие интерфейсы существуют для высокопроизводительных сканеров большого объема (вы знаете, те, что размером с бильярдный стол) - но не (AFAIK) для обычных пользовательских сканеров.

Для использования с .NET (а до этого COM) мне всегда удавалось с ImageMan .

0 голосов
/ 21 марта 2012

Возможно, сканер сообщит вашему приложению, что есть отсканированное изображение. Я не знаком с элементом управления VintaSoft .net и Atalasoft DotTwain Image Capture, но с некоторыми двойными SDK существует событие OnPostTransfer / OnPostAllTransfer, которое запускается после каждого сканирования, так что вы можете «уведомить» свой winservice

...