Мне интересно, какой лучший/предпочтительный способ написать приложение для сканирования, которое живет в веб-браузере. Основная идея заключается в том, что я хочу использовать веб-страницу, откуда я могу нажать кнопку, которая сканирует документ на клиенте и загружает этот документ на сервер. Первая мысль, которая пришла на ум, - написать родной (С++?) Плагин для браузера. Тем не менее, я не знаю, что требуется, чтобы родной плагин был кросс-браузером. Итак, вот несколько вопросов:
Является ли Silverlight жизнеспособным вариантом? Это то, что я бы предпочел, поскольку весь мой код - С#, ASP.NET. Вопрос в том, может ли Silverlight поговорить с Windows Image Acquisition COM на клиенте?
Напишите что-нибудь во флеше, возможно, с помощью Flex? Является ли это жизнеспособным вариантом? Может ли он разговаривать с WIA COM на клиенте?
И, наконец, если ответ пишется на С++, то какие из высокоуровневых хотчей делают его кросс-браузером?
Что еще там?
Проверьте это: http://code.msdn.microsoft.com/silverlightwia
Другим решением может быть (подписанный) Java-пакет, который может попасть в TWAIN, используя небольшую DLL с внутренним кодом, включенную в пакет. У людей Gnome есть продукт под названием Morena Framework, который работает таким образом. Также можно катить свое решение в этом стиле. Я бы не основывал какое-либо серьезное решение для сканирования документов на WIA, если бы в WIA 2.0 не было значительно улучшено - сделайте некоторые реалистичные тесты со сканерами, такими как Fujitsu fi, Canon DR, Kodak i-series, Visioneer или Documate ADF, и HP N6010 или 5K.
Посмотрите XBAP. Это веб-приложение WPF. Это требует .NET 3.5 на клиенте, так что это только окна, но работает в браузере.
Наш продукт только начал его использовать, и я только что исследовал, включив его в наш CI и процесс выпуска. Бит кривой обучения, но мы довольно близки к автоматическому развертыванию (без публикации), я обновлю этот вопрос, как только мы будем довольны нашим подходом.
Silverlight работает в песочнице и не может получить доступ к каким-либо ресурсам на локальном компьютере (кроме изолированного хранилища). Он не может получить доступ к COM-объектам, он не может получить доступ к локальному оборудованию.
Вы можете рассмотреть возможность установки небольшого обслуживания на клиентском компьютере, который будет взаимодействовать с WIA и говорить SL с этой службой, используя порты.