如何在Twain的帮助下使用ASP.net MVC 5扫描文档 [英] How can I scan a document using ASP.net MVC 5 with the help of Twain

查看:146
本文介绍了如何在Twain的帮助下使用ASP.net MVC 5扫描文档的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

请通过共享逐步过程来帮助我,以使用ASP.Net MVC5中的Twain实现扫描功能.谢谢

Please help me out by sharing the step by step procedure to achieve the scanning functionality using Twain in ASP.Net MVC5. Thank you

推荐答案

解决方案在这里:

  1. 在ASP.Net/Core项目中,您发送消息以调用winform项目:

  1. In ASP.Net/Core Project you send message to call winform project:

        var start = function () {
        var i = 0;
        var wsImpl = window.WebSocket || window.MozWebSocket;
        window.ws = new wsImpl('ws://localhost:8181/');
        ws.onmessage = function (e) {
            $('#submit').hide();
            $('#scanBtn').hide();
            $('.loader').show();
            if (typeof e.data === "string") {
                //IF Received Data is String
            }
            else if (e.data instanceof ArrayBuffer) {
                //IF Received Data is ArrayBuffer
            }
            else if (e.data instanceof Blob) {
                i++;
                var f = e.data;
                f.name = "File" + i;
                storedFiles.push(f);
                formdata.append(f.name, f);
                var reader = new FileReader();
                reader.onload = function (e) {
                    var html = "<div class=\"col-sm-2 text-center\" 
                style=\"border: 1px solid black; margin-left: 2px;\"><img 
                height=\"200px\" width=\"200px\" src=\"" + e.target.result + "\" 
                data-file='" + f.name + "' class='selFile' title='Click to 
                remove'><br/>" + i + "</div>";
                    selDiv.append(html);
                    $('#submit').show();
                    $('#scanBtn').show();
                    $('.loader').hide();
                }
                reader.readAsDataURL(f);
            }
        };
        ws.onopen = function () {
            //Do whatever u want when connected succesfully
        };
        ws.onclose = function () {
            $('.dalert').modal('show');
        };
    }
    window.onload = start;
    function scanImage() {
        ws.send("1100");
    };

https://javascript.info/websocket

  1. 在Winforms项目中,您扫描文档并将图形数据发送回Asp.Net/Core项目:

  1. In Winforms Project you scan document and send graphic data back to Asp.Net/Core project:

公共局部类Form1:表单 { ImageCodecInfo _tiffCodecInfo; TwainSession _twain; bool _stopScan; bool _loadingCaps; 列出所有套接字; WebSocketServer服务器; 公共Form1() { InitializeComponent();

public partial class Form1 : Form { ImageCodecInfo _tiffCodecInfo; TwainSession _twain; bool _stopScan; bool _loadingCaps; List allSockets; WebSocketServer server; public Form1() { InitializeComponent();

 if (NTwain.PlatformInfo.Current.IsApp64Bit)
{
    Text = Text + " (64bit)";
}
else
{
    Text = Text + " (32bit)";
}
foreach (var enc in ImageCodecInfo.GetImageEncoders())
{
    if (enc.MimeType == "image/tiff") { _tiffCodecInfo = enc; break; }
}

this.WindowState = FormWindowState.Minimized;
this.ShowInTaskbar = false;

allSockets = new List<IWebSocketConnection>();
server = new WebSocketServer("ws://0.0.0.0:8181");
server.Start(socket =>
{
    socket.OnOpen = () =>
    {
        Console.WriteLine("Open!");
        allSockets.Add(socket);
    };
    socket.OnClose = () =>
    {
        Console.WriteLine("Close!");
        allSockets.Remove(socket);
    };
    socket.OnMessage = message =>
    {
        if (message == "1100")
        {
            this.Invoke(new Action(()=> {
                this.WindowState = FormWindowState.Normal;
            }));
        }
    };
});

}

链接到项目.

https://github.com/mgriit/ScanAppForWeb

您可以根据需要重新制作该项目.

You can remake this project, as you want.

这篇关于如何在Twain的帮助下使用ASP.net MVC 5扫描文档的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆