Подтвердить что ты не робот

Взаимодействие с сканером конечных пользователей с помощью webapp (интеграция с web/сканером)

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

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

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

Как бы вы справились с этой проблемой? Более конкретно, как бы вы хотели сократить количество шагов, включенных в описанный прецедент?

4b9b3361

Ответ 1

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

Ответ 2

Хорошо, прошло два года, поэтому здесь обновляется современное состояние для тех, кто просто присоединяется к нам.

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

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

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

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

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

Ответ 3

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

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

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

Ответ 4

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

Ответ 5

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

Ответ 6

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

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

Ответ 7

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

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

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

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

Ответ 8

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

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

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

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

Ответ 9

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

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

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



Вы можете попробовать показать идентификатор транзакции в IE, пользователю выбрать идентификатор, а затем нажать кнопку "Сканировать". Ваше приложение прочитает текст SELECTED и сохранит файл, используя SELECTED-текст в качестве имени файла. Мы не пробовали, но он должен работать.

Ответ 10

Только утопия, если вы считаете, что веб-приложения ограничены веб-браузерами, на самом деле веб-приложения могут включать в себя множество разных технологий, помимо HTML и Javascript.

Классный способ решения этой проблемы - на самом деле, я уже использовал это для некоторых usbserial устройств - это реализовать ваше приложение, используя SOAP + XMPP. Вы можете сделать это в Perl, используя XML:: CompileX:: Transport:: SOAPXMPP, Catalyst:: Engine:: XMPP2, Catalyst:: Controller:: SOAP и Catalyst:: Model:: SOAP.

Интересная вещь об использовании XMPP заключается в том, что она упрощает управление адресацией, поскольку вы используете JID (Jabber ID) для поиска программного агента, а не схемы адреса адреса хоста и порта. Вторая интересная часть использования XMPP заключается в том, чтобы легче поддерживать сервер, нажимая информацию клиенту.

Но если вы не хотите обрабатывать XMPP, вы все равно можете сделать то же самое с легким встроенным HTTP-сервером - HTTP:: Server:: Simple, в Perl - и как-то зарегистрировать текущий адрес сканера на сервере поэтому он может перезвонить.

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

Таким образом, наличие локального программного агента для взаимодействия с локальным оборудованием не делает ваш webapp менее "веб", если вы используете веб-стандарты, такие как XML, SOAP и другие, для выполнения этой связи.

Ответ 11

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