Взаимодействие со сканером конечного пользователя из веб-приложения (интеграция веб / сканер) - PullRequest
22 голосов
/ 21 октября 2009

Рассмотрим следующую процедуру сканирования в типичном веб-приложении обработки документов:

  • Пользователь сканирует документ с помощью сканера, подключенного к его / ее компьютеру
  • Отсканированное изображение сохраняется локально на компьютере пользователя в виде файла BMP / JPG / TIF / PNG
  • Пользователь нажимает кнопку загрузки файла "Обзор ..." в веб-приложении
  • Пользователю предоставляется диалоговое окно файла, которое он / она использует для поиска отсканированного изображения
  • Пользователь нажимает кнопку «Загрузить изображение», и отсканированное изображение загружается на сервер, где оно хранится

Этот процесс довольно сложный, и я хотел бы сократить количество шагов, чтобы сделать этот процесс более удобным для пользователя / надежным. В идеальных обстоятельствах вышеуказанные шаги будут заменены только одним шагом, при котором процедура запуска сканирования документа, полного сканирования документа и загрузки полученного изображения автоматически запускается из веб-приложения при нажатии «Сканирование и загрузка». К сожалению, похоже, что состояние «интеграции веб / сканер» довольно плохое, так что это может быть утопией.

Как бы вы решили эту проблему? В частности, как бы вы пошли на сокращение количества шагов, включенных в описанный вариант использования?

Ответы [ 11 ]

13 голосов
/ 25 сентября 2012

Ну вот, прошло два года, так что вот обновленная информация о состоянии дел для тех, кто только что присоединился к нам.

Оба Dynamsoft и Atalasoft имеют мультибраузерные наборы инструментов для веб-сканирования, которые совместимы с любым стеком на стороне сервера. Оба требуют, чтобы пользователь установил ActiveX (в IE) или плагин NPAPI (Chrome, Firefox и т. Д.), Чтобы получить доступ к сканеру через API TWAIN.

Очевидно, что если у вас есть время или ограниченный бюджет, вы можете создать свой собственный плагин. Я искренне рекомендую каркас плагина FireBreath и любую библиотеку TWAIN вместо написания собственного кода TWAIN.

После установки ActiveX или плагина остальная часть работы представляет собой комбинацию javascript и HTML на клиенте и своего рода обработчик на сервере для приема и обработки входящего изображения, которое можно сделать так, чтобы оно выглядело просто как многокомпонентная форма отправки с приложенным файлом.

Я рекомендую выполнять загрузку изображения в javascript с использованием AJAX, поскольку в этом случае он является частью того же сеанса браузера, что и веб-страница, и он наследует настройки прокси-сервера браузера, файлы cookie сеанса и проверку подлинности на стороне сервера. Я не знаю о контроле Dynamsoft, инструментарий Atalasoft включает такую ​​загрузку AJAX. Изображения передаются из плагина в javascript в виде строки в кодировке base64, поэтому локальный файл фактически не создается.

Отказ от ответственности: я работаю над инструментарием веб-сканирования Atalasoft WingScan.

7 голосов
/ 26 октября 2009

Если ваша целевая аудитория работает под управлением Windows и IE, и вы не против потратить несколько долларов, Atalasoft имеет некоторые компоненты, которые будут выполнять то, что вы ищете.

1 голос
/ 22 декабря 2009

Мы внедрили решение по внедрению дистанционного депозита для банка. Работает только в IE. Создана winforms dll , которая взаимодействует с DLL LeadTools TWAIN. Leadtools TWAIN dll абстрагирует все подробности TWAIN. Этот подход немного лучше, чем использование элемента управления ActiveX. .NET Framework потребуется на клиенте. Отсканированные изображения отправляются обратно в скрытую переменную на странице и обрабатываются на сервере.

1 голос
/ 28 ноября 2009

Silverlight 4 скоро выйдет. Предполагается, что он может взаимодействовать с COM-объектами на компьютере пользователя (при условии, что они работают под управлением Windows). Теоретически вы вызываете методы WIA со своей веб-страницы Silverlight.

1 голос
/ 29 октября 2009

Я действительно видел, как кто-то в банке делал это при настройке моего аккаунта, и я был полностью поражен. В рассматриваемом банке использовались Windows и IE, я полагаю, что вы в одинаково контролируемой среде. Я думаю, что банк использовал комбинацию настраиваемого / предсказуемого драйвера сканера и элемента управления ActiveX.

Загружена страница с надписью «Открыть сканер», в которую сотрудник вставил документ и нажал «Сканировать» на веб-странице, затем страница изменилась на «Сканирование», после чего на веб-странице отсканированный документ был отображен для Утвердить. Я могу только предположить, что драйвер сканера отправил изображение в определенное место, и активный элемент управления X опрашивал его, чтобы он появился, как только он появился, он показал изображение на экране, как только сотрудник одобрил его, активный x загрузил его в фон. Она открыла следующую страницу и продолжила весь процесс.

Бог знает, как они сделали всю эту техническую работу, но это можно сделать.

0 голосов
/ 14 июня 2010

Мы сделали нечто подобное. мы использовали программу TWAIN из командной строки (http://www.burrotech.com/quickscan.php). $$ $ 49

1) Мы разработали небольшое приложение .Net для запуска программы QuickScan в виде команды оболочки.
2) Команда была назначена кнопке сканирования.
3) Как только пользователь нажмет кнопку сканирования, появится приглашение ввести имя файла. Пользователь сохраняет идентификатор транзакции как имя файла.
4) Другое приложение .Net (или, может быть, то же самое, что упоминалось ранее) прочитает этот файл и загрузит его в базу данных, учитывая, что имя файла является идентификатором транзакции.

Работал как теплый нож в масле!



Вы можете попробовать отобразить идентификатор транзакции в IE, пользователь может выбрать идентификатор и нажать «Сканировать». Ваше приложение прочитает ВЫБРАННЫЙ текст и сохранит файл, используя ВЫБРАННЫЙ текст в качестве имени файла. Мы не пробовали, но это должно сработать.

0 голосов
/ 31 октября 2009

Поскольку ваша аудитория является контролируемой средой, вы можете написать собственное расширение / программу для браузера на основе WIA / TWAIN, которая выполняет сканирование. Если вы выбираете расширения браузера, такие как BHO / ActiveX / XPCOM и т. Д., Вам необходимо получить разрешение пользователя на установку вашего расширения. Если вы решите написать программу, вам могут потребоваться технологии веб-развертывания, такие как ClickOnce или Java Web Start, чтобы запускаться из Интернета.

Интерфейс TWAIN - это боль для Windows. Помимо сложности, вы должны отобразить некоторый графический интерфейс, написанный разными разработчиками драйверов сканера. Это может быть единственным способом поддержки старых сканеров или функций, не предоставляемых через другие интерфейсы, таких как полноскоростное сканирование из устройства подачи документов.

Microsoft WIA значительно упрощает взаимодействие со сканером с помощью объектной модели сценариев, однако функции, специфичные для сканера, недоступны, и некоторые старые сканеры не поддерживают интерфейс.

После сканирования вы можете позвонить в веб-службу, чтобы уведомить сервер, и веб-страница может периодически обновляться для проверки новых изображений.

0 голосов
/ 25 октября 2009

Вы можете разместить Java-апплет на своем сайте. Это может получить доступ к сканеру и отправить данные через REST на ваш веб-сервер.

0 голосов
/ 21 октября 2009

Наиболее вероятным вариантом удаления большинства шагов может быть написание специализированной утилиты сканирования, которую пользователь будет загружать и запускать на своем локальном компьютере.

SANE или TWAIN будут обрабатывать получение отсканированного изображения. cURL мог бы обработать загрузку изображения в ваше веб-приложение. Чтобы было еще проще для конечного пользователя, я бы использовал что-то вроде соединения Comet для обновления веб-страницы, когда файл был доступен.

Если это не вариант, вы можете посмотреть, какие варианты будут у ваших пользователей при использовании программного обеспечения сканеров. Я считаю, что многие программы теперь поддерживают сканирование по электронной почте или по FTP.

Решение, которое я использовал для приложения для внутренней сети с использованием многофункционального сканера / копировального устройства, заключалось в сканировании на общий ресурс SMB, к которому имел доступ веб-сервер. Пользователь просто отправляется на сканирование копировального устройства к общему ресурсу, и когда он возвращается на свой рабочий стол, он переходит на новую страницу сканирования, которая показывает список всех новых необработанных файлов.

0 голосов
/ 21 октября 2009

Хм, я всегда хотел посмотреть на отсканированный файл, прежде чем что-то с ним делать, но я полагаю, это зависит от вашего сканера и того, какое качество вам нужно.

Если цель состоит в том, чтобы «автоматизировать процесс сканирования и загрузки», а не «написать веб-приложение», я бы написал скрипт AutoIt для управления существующим программным обеспечением сканера и простой программой ftp.

...