Интеграция приложения сканирования в файл с браузером - PullRequest
3 голосов
/ 11 июля 2011

У нас есть приложение на основе интрасети, и у пользователей есть настольные сканеры (которые TWIAN, но не совместимы с WIA). Пользователям необходимо «щелкнуть для сканирования» в окне браузера (IE 8) и сохранить отсканированное изображение в приложении с минимальным взаимодействием с пользователем.

У меня есть приложение c # winform с этой функциональностью, но я изо всех сил пытаюсь интегрировать его с браузером (IE 8).

Я рассмотрел:

  • Объект Browser-Helper, вызывающий приложение winform как dll
  • BHO со своей собственной реализацией функции сканирования
  • Silverlight * * 1010

    Есть ли другие подходы, которые я должен рассмотреть?

    То, что я получил до сих пор, довольно тяжело для COM, основано на этом вопросе / ответе и использовании .NET TWAIN примеров в проекте кода.

Ответы [ 2 ]

0 голосов
/ 24 августа 2016

Scanner.js получает изображения со сканеров и веб-камер TWAIN WIA в вашем браузере .Выводом может быть возврат изображений на веб-страницу, загрузка на сервер напрямую или, в вашем случае, сохранение на локальный диск.

<html lang="en">
<head>
<script src="//asprise.azureedge.net/scannerjs/scanner.js" type="text/javascript"></script>
<script>
    function scanToLocalDisk() {
        scanner.scan(displayResponseOnPage,
          {
           "twain_cap_setting" : {
              "ICAP_PIXELTYPE" : "TWPT_RGB", // Color
              "ICAP_SUPPORTEDSIZES" : "TWSS_USLETTER" // Paper size: TWSS_USLETTER, TWSS_A4, ...
            },
            "output_settings": [
              {
                 "type": "save",
                 "format": "pdf",
                 "save_path": "C:\\myfolder\\${TMS}${EXT}"
              }
            ]
         }
        );
    }

    function displayResponseOnPage(successful, mesg, response) {
        if(!successful) { // On error
            document.getElementById('response').innerHTML = 'Failed: ' + mesg;
            return;
        }
        if(successful && mesg != null && mesg.toLowerCase().indexOf('user cancel') >= 0) { // User cancelled.
            document.getElementById('response').innerHTML = 'User cancelled';
            return;
        }
        document.getElementById('response').innerHTML = scanner.getSaveResponse(response);
    }
</script>
</head>
<body>
<h2>Scan to Local Disk</h2>
<button type="button" onclick="scanToLocalDisk();">Scan</button>
<div id="response"></div>
</body> </html>

При указании значения для save_path вы можете использоватьпеременные, которые будут расширены.Например, $ {TMS} будет расширен как отметка времени, а $ {EXT} как расширение файла.

Scanner.js поддерживает в браузере получение двойного изображения в таких форматах, как JPG, многостраничный PDF , PNG и т. Д.

Прочтите руководство разработчика по сканированию веб-файлов JavaScript для браузеров (Chrome, Edge, Firefix и IE) .

0 голосов
/ 11 июля 2011

Является ли Siverlight вариантом для вас?(Установят ли это ваши клиенты) Если это так, лучше всего иметь одну страницу Siverlight для сканирования.

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

Как вы уже знаете, WinForm, может быть, небольшое winform-приложение «щелкнет один раз», которое выполняет сканирование - это зависит от желания клиентов установить .net framework.

(Есть еще некоторые вещи, которые причиняют боль в шею для веб-приложений, но клиенты спрашивают о WebApp, поскольку они хотят «ничего не устанавливать»)

...