我们有一个基于Intranet的应用程序,用户有桌面扫描仪(TWIAN但不兼容WIA)。用户需要从浏览器窗口(IE 8)“点击扫描”,并以最少的用户交互将扫描的图像保存到应用程序。
我有一个带有此功能的c#winform应用程序,但我很难将其与浏览器(IE 8)集成。
我考虑过:
我还应该考虑其他方法吗?
到目前为止,基于this question/answer并在代码项目中使用.NET TWAIN示例,我非常喜欢COM。
答案 0 :(得分:0)
Siverlight是您的选择吗? (您的客户是否会安装它)如果是这样,有一个Siverlight页面进行扫描可能是最好的选择。
扫描仪是否可以设置为通过电子邮件发送扫描图像,如果是这样,您可以让您的网络应用程序读取通过电子邮件发送给它的图像。
正如您已经了解的WinForm,可能只是一个小的“单击一次”winform应用程序进行扫描 - 这取决于客户是否愿意安装.net框架。
(Web应用程序仍然存在一些问题,但是客户要求WebApp,因为他们想要“无需安装”)。
答案 1 :(得分:0)
Scanner.js acquires images from TWAIN WIA scanners and webcams in your browser。输出可以将图像返回到网页,直接上传到服务器,或者保存到本地磁盘。
<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 supports in browser web twain image acquisition in formats like JPG, multi-page PDF,PNG等