Dynamic Web TWAIN是一个专为Web应用程序设计的TWAIN扫描识别控件,允许用户从扫描仪扫描文档或从数码相机/采集卡中获取图像,并支持上传和处理本地图像。本文将介绍如何通过TWAIN扫描识别工具Dynamic Web TWAIN实现在Web应用程序中扫描和上传文件。

下载并安装Dynamic Web TWAIN后, 在 "\Dynamsoft\Dynamic Web TWAIN 9.0 Trial\Resources."目录下找到下列文件:

DynamicWebTWAIN.cab/ DynamicWebTWAINx64.cab – the ActiveX control edition for Internet Explorer (IE) 32 bit and 64 bit

DynamicWebTWAINPlugIn.msi - the Plugin Edition for Chrome, Firefox, Safari on Windows

DynamicWebTWAINMacEditionTrial.pkg – the Mac Edition for Chrome, Firefox, Safari on Mac OS X

将上述提到4个Dynamic Web TWAIN 插件文件复制并粘贴到MVC应用程序的Content文件夹中,从而将TWAIN扫描识别控件Dynamic Web TWAIN 嵌入到MVC应用程序。

Dynamic Web TWAIN文档扫描视图

如下面的截图所示,索引页上已添加了一个"Scan" 选项卡。点击 "Scan",用户将看到使用了Dynamic Web TWAIN插件的Scan.aspx页面。

启动Dynamic Web TWAIN

function DW_CreateControl(bNeebBack) {

var objString = "";

var DWTContainer;

// For IE, render the ActiveX Object

if (DW_InIE) {

objString = "

if (DW_InWindowsX86)

objString += "codebase='" + DW_CABX86Path + "#version=" + DW_VersionCode + "' "; //load 32 bit CAB file for 32 bit Windows

else

objString += "codebase='" + DW_CABX64Path + "#version=" + DW_VersionCode + "' "; //load 64 bit CAB file for 64 bit Windows

var temp = DW_IsTrial ? DW_TRAILCLASSID : DW_FULLCLASSID;

objString += " classid='clsid:" + temp + "' viewastext>";

objString += " ";

objString += " ";

objString += " ";

//objString += " ";

objString += "

";

}

// For non-IE browsers, render the embed object

else {

objString = "

objString += " OnPostTransfer='Dynamsoft_OnPostTransfer' OnPostAllTransfers='Dynamsoft_OnPostAllTransfers'";

objString += " OnMouseClick='Dynamsoft_OnMouseClick' OnPostLoad='Dynamsoft_OnPostLoadfunction'";

objString += " OnImageAreaSelected = 'Dynamsoft_OnImageAreaSelected'";

objString += " OnImageAreaDeSelected = 'Dynamsoft_OnImageAreaDeselected'";

objString += " OnMouseDoubleClick = 'Dynamsoft_OnMouseDoubleClick'";

objString += " OnMouseRightClick = 'Dynamsoft_OnMouseRightClick'";

objString += " OnTopImageInTheViewChanged = 'Dynamsoft_OnTopImageInTheViewChanged'";

if (DW_InWindows)

objString += " pluginspage='" +

else

objString += " pluginspage='" + DW_PKGPath + "'>

"; //load the Mac edition for Chrome, Firefox, Safari on Mac

}

DWTContainer = document.getElementById(DW_DWTContainerID);

DWTContainer.innerHTML = objString;

DWObject = document.getElementById(DW_ObjectName);

}

扫描文档

通过TWAIN扫描识别控件可以从扫描仪中轻松捕获图像。下列JavaScript代码设置了像素类型,分辨率,扫描类型等。

function AcquireImageInner() {

if (DW_DWTSourceContainerID == "")

DWObject.SelectSource();

else

DWObject.SelectSourceByIndex(document.getElementById(DW_DWTSourceContainerID).selectedIndex); //select from the available TWAIN devices

DWObject.CloseSource();

DWObject.OpenSource();

DWObject.IfShowUI = document.getElementById("ShowUI").checked;

var i;

for (i = 0; i < 3; i++) {

if (document.getElementsByName("PixelType").item(i).checked == true)

DWObject.PixelType = i;

} //set the pixel type of the image

DWObject.Resolution = Resolution.value;

DWObject.IfFeederEnabled = document.getElementById("ADF").checked; //whether scan from ADF or flatbed

DWObject.IfDuplexEnabled = document.getElementById("Duplex").checked; //whether do duplex scan

DWObject.IfDisableSourceAfterAcquire = true;

DWObject.AcquireImage(); //acquire images from the scanner

}

上传文档

将图像扫描至Dynamic Web TWAIN后,你可以通过HTTP Post方法,将扫描图像上传到Web服务器。

var DW_ActionPage = "SaveToFile"; //call SaveToFile controller

function btnUpload_onclick(){

var i, strHTTPServer, strActionPage, strImageType;

strHTTPServer = DW_ServerName;

DWObject.HTTPPort = DW_strPort;

var CurrentPathName = unescape(location.pathname); // get current PathName in plain ASCII

var CurrentPath = CurrentPathName.substring(0, CurrentPathName.lastIndexOf("/") + 1);

strActionPage = CurrentPath + DW_ActionPage; //the ActionPage's file path

for(i=0;i<4;i++){

if(document.getElementsByName("ImageType").item(i).checked == true){

strImageType = i + 1;

break;

}

} //choose the image type, JPEG, TIFF, PNG or PDF

var uploadfilename = txt_fileName.value + "." + document.getElementsByName("ImageType").item(i).value;

if (strImageType == 2 && document.getElementById("MultiPageTIFF").checked) {

if ((DWObject.SelectedImagesCount == 1) || (DWObject.SelectedImagesCount == DWObject.HowManyImagesInBuffer)) {

DWObject.HTTPUploadAllThroughPostAsMultiPageTIFF(

strHTTPServer,

strActionPage,

uploadfilename

);

{

DWObject.HTTPUploadThroughPostAsMultiPageTIFF(

strHTTPServer,

strActionPage,

uploadfilename

);

}

} //whether to upload the images as a multi-page TIFF file

else if (strImageType == 4 && document.getElementById("MultiPagePDF").checked) {

if ((DWObject.SelectedImagesCount == 1) || (DWObject.SelectedImagesCount == DWObject.HowManyImagesInBuffer)) {

DWObject.HTTPUploadAllThroughPostAsPDF(

strHTTPServer,

strActionPage,

uploadfilename

);

}

else {

DWObject.HTTPUploadThroughPostAsMultiPagePDF(

strHTTPServer,

strActionPage,

uploadfilename

);

}

} //whether to upload the images as a multi-page PDF file

else {

DWObject.HTTPUploadThroughPostEx(

strHTTPServer,

DWObject.CurrentImageIndexInBuffer,

strActionPage,

uploadfilename,

strImageType

);

}

Controller.cs

public String SaveToFile()

{

String strImageName;

HttpFileCollectionBase files = Request.Files;

HttpPostedFileBase uploadfile = files["RemoteFile"];

strImageName = uploadfile.FileName;

uploadfile.SaveAs(Server.MapPath("~") + "\\UploadedImages\\" + strImageName);

return "";

}

dynamic web twain java_Web扫描识别控件Dynamic Web TWAIN使用实例:上传和扫描相关推荐

  1. (转自dflying chen)使用Anthem.NET 1.5中的FileUpload控件实现Ajax方式的文件上传

    Anthem.NET(我的介绍和比较,还有一篇)刚刚发布了其最新的1.5版本,其中很不错的一个新功能就是对文件上传功能的Ajax实现.本文将简要介绍一下该功能的使用方法. Anthem.NET的下载与 ...

  2. 使用()控件的saveas方法可以将上传文件保存到服务器.,NET开发-FileUpload上传控件HasFile、FileName、SaveAs()的使用...

    .NET开发-FileUpload控件 1. FileUpload控件概述 在ASP.NET WebForm的标准控件中,可以使用FileUpload控件实现客户端文件(任意类型的文件)的上传,上传后 ...

  3. DevExpress控件使用系列--ASPxUploadControl(图片上传及预览)

    1.控件功能      列表控件展示数据.弹框控件执行编辑操作.Tab控件实现多标签编辑操官方说明 2.官方示例       2.1 ASPxImage                 http:// ...

  4. android上传文件用哪个布局,每周总结20130821——android控件的尺寸、http文件上传...

    Android控件的尺寸 android开发中,可以通过编写XML格式的布局文件来实现布局,也可以用纯代码进行布局,通常都是选择XML文件布局.在XML布局文件中,与控件的尺寸有关的属性有androi ...

  5. ASP.NET 实践:使用用户控件实现 Web 部件的个性化

    这个实践示范了如何创建依赖于 Web 部件个性化的 ASP.NET 用户控件,并在 Web 页面中提供用户特定的默认值. ASP.NET Web 部件控件集允许你建立拥有模块化布局的 Web 页面,并 ...

  6. Html控件和Web控件的比较分析

     在ASP.NET中,使用了两类控件,一类是HTML控件(又分为HTML控件和HTML服务器控件),还有一类是WEB控件. 从以下几个方面来了解他们的区别和联系 一:概念 HTML控件:就是我们通 ...

  7. 【ASP.NET】认识HTML控件与WEB控件

    概念 HTML控件:HTML语言标记,标记在以往的静态页面和其他网页里存在,不能再服务器端控制,只能在客户端通过JavaScript等程序语言来控制 WEB控件:服务端控件,ASP.NET特有. 形式 ...

  8. HTML控件和Web控件的区别和联系

    在ASP.NET中,使用了两类控件,一类是HTML控件(又分为HTML控件和HTML服务器控件),还有一类是WEB控件. 从以下几个方面来了解他们的区别和联系 一:概念 HTML控件:就是我们通常的说 ...

  9. Asp.net控件之异同:HTML控件与Web服务器控件

    Asp.net之所以现在开发方便和快捷,关键是它有一组强大的控件库,包括web服务器控件,web用户控件,web自定义控件,html服务器控件和html控件等.这里我主要说说html控件.html服务 ...

最新文章

  1. 我们小时候,开学是这样的!差点看哭了!
  2. 牛客题霸 NC20 数字字符串转化成IP地址
  3. android bitmap裁剪中间,Android裁剪中心位图
  4. 前端学习(2890):如何短时间内实现v-for 模板编译321
  5. es6 新增数据类型_ES6新增特性整理
  6. 英伟达 VS. 英特尔:后浪来袭!
  7. 01_决策树案例一:鸢尾花数据分类
  8. matlab里substring,ADT课堂第六讲-String Functions-substring
  9. keil4注册机注册不了怎么办?我已经试过下面的注册机不行。求各大神指教一下?
  10. 基于STM8的TM1640驱动程序(附八段数码管配置工具)
  11. 成都电子信息学校计算机专业,成都电子信息学校2020招生简章
  12. U3D学习项目一:2D横版小狐狸闯关游戏(代码部分二)
  13. spring上传文件
  14. MFC绘图二——简单绘制直线等
  15. 微信weui之actionSheet应用
  16. http://jingyan.baidu.com/article/d169e186b38c37436611d8fa.html
  17. 初入Java,安装jdk,ij编译,运行
  18. Butter Knife
  19. fffffffffffffffffff
  20. 在IE下-下载文件-文件名中文名乱码问题

热门文章

  1. opencv SimpleBlobDetector blob分析斑点检测原理详解
  2. 【华为419机考真题】树上逃离 or 猴子爬树
  3. 记录一次cpu 过高分析过程
  4. win7 vmware虚拟机上网设置
  5. 设计模式—抽象工厂模式(java实现示例)
  6. devstack mysql_DevStack部署Openstack环境
  7. java导入可信任证书
  8. Web漏洞扫描神器Nikto
  9. origin三元相图_三元相图怎么看怎么画(附R代码示例)
  10. Floodlight 用Static Flow Pusher 改变流表规则