通过浏览器扫描图片

Image scanning through browser

问题是:我有一个 USB 扫描仪 (HP),想通过 Web 应用程序获取图像。很久以前用 java 小程序解决了,但现在 chrome 不再支持它们了。

我已经看到了可能的解决方案。 "coolest" 一个是 Dynamsoft,但我买不起 NPAPI 或 ActiveX。我见过 html5 websocket 技术,通信有效,但似乎没有办法将其与扫描器连接。

我也有类似的情况。 Firefox 也已宣布弃用,但尚未确定终止支持的日期。在不久的将来,您唯一的其他选择是基于 PNACL 编写您自己的插件。我对此进行了尝试,但发现由于 PNACL 限制了 C 源代码的功能,这很困难。如果使用 Dynamsoft 的产品,您将希望使用他们的 Web TWAIN SDK,这将覆盖大多数用户,但同样他们的价格可能是个问题。

未来我们可能会有一些值得期待的事情:

  • chrome.documentScan - 仅适用于 Chrome OS,希望他们将其移植回 Windows!
  • WebUSB - Javascript 的司机,不是我的菜
  • TWAIN Direct - 无人驾驶扫描,不适用于较旧的扫描仪

我有一些解决方法。它不使用 NPAPI 插件,因此它将与现代浏览器兼容。

用户必须下载 运行 安装程序。此安装程序包含一些扫描仪软件(与大多数扫描仪兼容),支持命令行和通过 FTP 上传文件的软件 我使用 NASP2(支持大多数现代扫描仪)扫描和 WINSCP 通过 ftp 上传(我们只需要 winscp.exe amd winscp.com 文件)。 我把 WINSCP 文件放到了 NASP2 文件夹。

我们的安装程序在 NASP2 文件夹中创建 bat 文件 ScanToMyWebsite.bat,类似于:

@echo off
echo Scanning, please wait...
"C:\Program Files\NAPS2\NAPS2.Console"  -f  -o "%appdata%/NAPS2/temp/my_scan.pdf"
echo Uploading scan...
winscp.com /command "open ftp://login:password@our_ftp_server.pl" "put  ""%appdata%\NAPS2\temp\my_scan.pdf""" "exit"
echo Done!

这个bat文件只是扫描文档并上传到ftp服务器。

然后我们的安装程序在系统中注册新协议 - 例如 "scan-to-my-website:"(类似于 http:、ftp: 等)通过 exec .reg 文件(我们的安装程序执行此操作):

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\scan-to-my-website]
@="URL:scan-to-my-website Protocol"
"URL Protocol"=""

[HKEY_CLASSES_ROOT\scan-to-my-website\DefaultIcon]
@="C:\Program Files (x86)\NAPS2\NAPS2.exe"

[HKEY_CLASSES_ROOT\scan-to-my-website\Shell]

[HKEY_CLASSES_ROOT\scan-to-my-website\Shell\Open]

[HKEY_CLASSES_ROOT\scan-to-my-website\Shell\Open\command]
@="\"C:\Program Files\NAPS2\ScanToMyWebsite.cmd\""

现在我们可以在我们的网站上创建

<a href="scan-to-my-website:">Scan!</a>

单击此 link 后,它只是 运行 我们创建并上传扫描到 ftp 服务器的 bat 文件。 通过 AJAX 或任何其他网站可以检查文件是否已上传的方法。 就是这样:)