2010-08-17 2677 views
14

我有我想从jQuery Rails网页中的按钮触发的富士通fi-6130 TWAIN/ISIS扫描仪。我不仅希望让页面告诉扫描器“去”,我还希望在扫描(单个)页面后通过回形针上传结果文件 - 理想情况下,不需要用户导航文件资源管理器小部件即可手动找到该文件。如何从浏览器中触发扫描仪?

虽然我们可能会将这些呼叫中心桌面替换为Google Chrome操作系统,但每台扫描仪均连接到Windows XP桌面。

这个问题被问差不多一年前,但需要使用的,成本几百元的商业IE .NET产品主要是收到的建议 - Interfacing with the end-user's scanner from a webapp (web/scanner integration)

+2

它不是真的有可能对接的浏览器扫描仪(该死的)。让用户自己扫描图像并上传。 – tcooc 2010-08-17 15:42:44

+0

在浏览器中与扫描仪交谈的一种方法是通过ActiveX控件(IE)或浏览器插件(Firefox,Chrome)。据我所知,这里没有这样的开源SDK。最好花几百美元,而不是从头开始。 twain是扫描仪驱动程序最流行的协议,并且很难破解 – flysakura 2012-09-12 09:44:12

+0

[scanner.js](http://asprise.com/document-scan-upload-image-browser/direct-to-server-php-asp。 net-overview.html)允许您从Windows或Mac OS上的浏览器调用扫描器。这也是一个商业包装。 – 2015-02-25 06:36:22

回答

13

这是不可能直接从标准中的HTML/JS页面 - js没有权限访问扫描仪等外围设备。

可能使用flash或silverlight,但怀疑你会遇到权限问题。有文章herehere,但它可能是a)太涉及和b)不完全是你所追求的。

如果你控制了Web应用程序将运行的机器,我建议使用一个简单的桌面客户端进行扫描,并通过打开本地端口

因此允许从网页内它连接js做了一个AJAX呼叫(说)http://localhost:1234/Services/Scan,它返回一个图像

编辑:关于编写桌面客户端,你有很多选择。我个人建议你不要尝试在PERL/PHP中这样做,因为它们看起来并不是正确的工具,我怀疑你最终会加载COM对象来尝试访问TWAIN设备(我们都知道这是多么有趣...)

在评论中,你已经表示你不喜欢Visual Studio - 所以如果你熟悉Java,我建议你看看JTwain(商业,但似乎是很好的质量)或开始阅读here。注意:我不是一个频繁的Java开发人员,所以不能保证上述任何一个正是你所需要的。

除此之外,我建议C++使用不同的IDE(虽然这不会是操作系统无关)

+0

被配置为将扫描仪api的子集作为Web服务进行代理的程序可能已经被编写了几次......事实上,我很惊讶扫描仪供应商不提供用于常用桌面的供应商。我敢打赌,高端扫描仪的客户中很大一部分需要它。 有谁知道一个现成的? – 2010-08-17 18:30:55

+0

我不会,但现在我很想写一个:) – Basic 2010-08-17 20:58:50

+0

我通过电子邮件,聊天和电话联系了富士通。他们没有任何桌面操作系统的这样的工具,但我确信他们注意到了我的请求,并建议他们直接回复这个Stackoverflow问题。 我宁愿用我熟悉的语言来编写扫描器到监听套接字中继,但Ruby和Python必须在Windows上单独安装。 C++程序必须在那该死的Visual Studio中生成。从呼叫中心支持的角度来看,本地Windows脚本语言会更好,但我不知道。然后,只要我们使用Windows,代理服务器就会工作。 – 2010-08-18 17:43:57

1

您可以使用签名的小,使用像MMS计算的一个库。 您可以在代码库OpenKM的applet中看到它正在使用中。

11

有一个名为Dynamic Web TWAIN from Dynamsoft的解决方案,它提供了一个基于浏览器的TWAIN SDK,用于从TWAIN设备获取图像,并将其编辑并保存到远程数据库。

1

似乎有一个Web API工具包可用于富士通fi系列扫描仪。 它基本上是您安装在客户端机器上的应用程序,其中扫描器是通过JSON或Silverlight接受调用并将它们发送到扫描仪驱动程序。

http://uk.emc.com/enterprise-content-management/captiva/cloud-toolkit.htm

我刚刚下载了它,我通读了文档,所以不能保证它的工作原理。

2

作为@Basic提到的,JTwain可以用来创建这样的解决方案。事实上,JTwain的开发者已经创建了ScannerJS that allows one to scan directly from browsers like IE, Chrome and Firefox using JavaScript。为了在网页中使用它,你需要:

包括scanner.js:

<html lang="en"><head> 
<script src="//asprise.azureedge.net/scannerjs/scanner.js" type="text/javascript"></script> 

,并呼吁scanner.scan

function scanToWebPageAndUploadToWebServer() { 
    scanner.scan(displayImagesOnPage, 
{ 
"twain_cap_setting": { 
    "ICAP_PIXELTYPE": "TWPT_GRAY", 
    "ICAP_XRESOLUTION": "200", 
    "ICAP_YRESOLUTION": "200" 
}, 
"prompt_scan_more": true, 
"discard_blank_pages": "false", 
"blank_page_threshold": "0.02", 
"output_settings": [ 
    { 
     "type": "return-base64-thumbnail", 
     "format": "jpg", 
     "thumbnail_height": 200 
    }, 
    { 
     "type": "upload", 
     "format": "pdf", 
     "pdf_force_black_white": "false", 
     "pdfa_compliant": "false", 
     "pdf_text_line": "By ${USERNAME} on ${DATETIME}", 
     "exif": { 
      "DocumentName": "Doc Scan Powered by Asprise.com", 
      "UserComment": "Scanned using Asprise software" 
     }, 
     "upload_target": { 
      "url": "https://asprise.com/scan/applet/upload.php?action=dump", 
      "max_retries": 2, 
      "post_fields": { 
       "provider": "Asprise" 
      }, 
      "cookies": "name=Asprise; domain=asprise.com", 
      "auth": "user:pass", 
      "headers": [ 
       "Referer: http://asprise.com" 
      ], 
      "log_file": "null", 
      "max_operation_time": 600 
     } 
    } 
] 
} 

    ); 
    } 
+0

是scanner.js,该软件对于非常低级的基本用途是免费的。 – nilesh 2017-09-12 19:03:22

+0

“事实上,JTwain的开发者创造了......”你在第三人谈论你自己的任何理由? – Basic 2018-02-13 16:48:27