ruby-on-rails 如何从浏览器触发扫描仪?

gg58donl  于 2023-04-08  发布在  Ruby
关注(0)|答案(7)|浏览(222)

我有Fujitsu fi-6130 TWAIN / ISIS扫描仪,我想通过jQuery Rails网页中的一个按钮触发扫描仪。我不仅想让页面告诉扫描仪“去”,我还想在扫描(单个)页面后通过Paperclip上传结果文件-理想情况下,不需要用户手动导航文件浏览器小部件来查找文件。
每台扫描仪都通过USB连接到Windows XP桌面,但我们可能会将这些呼叫中心桌面替换为Google Chrome OS。
这个问题差不多在一年前就被提出来了,但收到的建议主要是要求使用成本几百美元的商业IE .NET产品-Interfacing with the end-user's scanner from a webapp (web/scanner integration)

u2nhd7ah

u2nhd7ah1#

这是不可能直接从一个标准的HTML/js页面- js没有权限访问外围设备,如扫描仪。
使用flash或silverlight都有可能,但怀疑你会遇到权限问题。有文章herehere,但它可能a)太复杂,b)不是你想要的。
如果您控制将运行Web应用程序的计算机,我建议使用简单的桌面客户端来执行扫描,并允许通过打开本地端口从网页内连接到该客户端
所以js对http://localhost:1234/Services/Scan执行 AJAX 调用,返回一个图像

**编辑:**关于编写桌面客户端,你有很多选择。我个人建议你不要尝试用Perl/PHP来做这件事,因为它们似乎不是合适的工具,我怀疑你最终会加载COM对象来尝试访问TWAIN设备(我们都知道这有多有趣...)

在评论中,你已经表明你不喜欢Visual Studio -所以如果你熟悉Java,我建议你看看JTwain(商业但似乎质量不错)或开始阅读here。我不是一个频繁的java开发人员,所以不能保证上面的任何一个都是你需要的。
除此之外,我建议使用不同的IDE(尽管这不会与操作系统无关)

k4emjkb1

k4emjkb12#

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

ttp71kqs

ttp71kqs3#

以下是我发现的一个免费开源选项:
https://github.com/mgriit/ScanAppForWeb
如果有人将这个概念与NAPS2(https://www.naps2.com/)合并起来
这会是一个很好的解决方案

lzfw57am

lzfw57am4#

正如@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
        }
    }
]
}

    );
    }
fdbelqdn

fdbelqdn5#

你可以使用一个签名的小程序,使用一个像MMS computing的库。你可以在OpenKM的代码库中看到它在一个小程序中的使用。

lb3vh1jj

lb3vh1jj6#

似乎有一个Web API工具包可用于富士通fi系列扫描仪。它基本上是一个应用程序,您安装在客户端机器上,扫描仪通过JSON或Silverlight接受调用,并将其发送到扫描仪驱动程序。
http://uk.emc.com/enterprise-content-management/captiva/cloud-toolkit.htm
我刚刚下载了它,正在阅读的文件槽,所以不能保证它的工作。

0ve6wy6x

0ve6wy6x7#

让我想知道扫描仪和网络摄像头是具有相同基本功能的工具,捕捉图像,但为什么网络摄像头可以像即插即用一样顺利连接,而扫描仪就像是没有办法像一堵铁墙一样站在我们的路上。所以我的想法是,这就像网络摄像头和mybe一样,我们可以打破这堵铁墙的方式

相关问题