如何从浏览器中触发扫描仪?
我有我想从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)
这是不可能直接从标准中的HTML/JS页面 - js没有权限访问扫描仪等外围设备。
可能使用flash或silverlight,但怀疑你会遇到权限问题。有文章here和here,但它可能是a)太涉及和b)不完全是你所追求的。
如果你控制了Web应用程序将运行的机器,我建议使用一个简单的桌面客户端进行扫描,并通过打开本地端口
因此允许从网页内它连接js做了一个AJAX呼叫(说)http://localhost:1234/Services/Scan,它返回一个图像
编辑:关于编写桌面客户端,你有很多选择。我个人建议你不要尝试在PERL/PHP中这样做,因为它们看起来并不是正确的工具,我怀疑你最终会加载COM对象来尝试访问TWAIN设备(我们都知道这是多么有趣...)
在评论中,你已经表示你不喜欢Visual Studio - 所以如果你熟悉Java,我建议你看看JTwain(商业,但似乎是很好的质量)或开始阅读here。注意:我不是一个频繁的Java开发人员,所以不能保证上述任何一个正是你所需要的。
除此之外,我建议C++使用不同的IDE(虽然这不会是操作系统无关)
被配置为将扫描仪api的子集作为Web服务进行代理的程序可能已经被编写了几次......事实上,我很惊讶扫描仪供应商不提供用于常用桌面的供应商。我敢打赌,高端扫描仪的客户中很大一部分需要它。 有谁知道一个现成的? – 2010-08-17 18:30:55
我不会,但现在我很想写一个:) – Basic 2010-08-17 20:58:50
我通过电子邮件,聊天和电话联系了富士通。他们没有任何桌面操作系统的这样的工具,但我确信他们注意到了我的请求,并建议他们直接回复这个*问题。 我宁愿用我熟悉的语言来编写扫描器到监听套接字中继,但Ruby和Python必须在Windows上单独安装。 C++程序必须在那该死的Visual Studio中生成。从呼叫中心支持的角度来看,本地Windows脚本语言会更好,但我不知道。然后,只要我们使用Windows,代理服务器就会工作。 – 2010-08-18 17:43:57
似乎有一个Web API工具包可用于富士通fi系列扫描仪。 它基本上是您安装在客户端机器上的应用程序,其中扫描器是通过JSON或Silverlight接受调用并将它们发送到扫描仪驱动程序。
http://uk.emc.com/enterprise-content-management/captiva/cloud-toolkit.htm
我刚刚下载了它,我通读了文档,所以不能保证它的工作原理。
作为@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
}
}
]
}
);
}
它不是真的有可能对接的浏览器扫描仪(该死的)。让用户自己扫描图像并上传。 – tcooc 2010-08-17 15:42:44
在浏览器中与扫描仪交谈的一种方法是通过ActiveX控件(IE)或浏览器插件(Firefox,Chrome)。据我所知,这里没有这样的开源SDK。最好花几百美元,而不是从头开始。 twain是扫描仪驱动程序最流行的协议,并且很难破解 – flysakura 2012-09-12 09:44:12
[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