Dynamic Web TWAIN SDK是一款帮助实现网页文档扫描的SDK,使用它可以轻易地通过几行HTML/JavaScript代码来实现一个可以直接连接扫描仪扫描的网页。

但是在实际开发和应用过程中,有很多程序员或者终端用户会迷惑于Dynamic Web TWAIN SDK、Dynamsoft Service、扫描仪TWAIN驱动之间的区别。本文将简述其用途及区别(从版本13开始)。

Dynamic Web TWAIN SDK

是这款SDK的名称。同时,程序员可以在原厂商Dynamsoft官网或者杭州大名软件官网下载30天免费试用版。【下载链接1;下载链接2】

下载到本地的是一个EXE文件(以最新试用版本为例):DynamicWebTWAIN15.0Trial.exe 

双击安装后,将在本地C:\Program Files (x86)\Dynamsoft路径下生成一个Dynamic Web TWAIN SDK 15.0 Trial文件夹。

内含开发所需的文档Documents,资源文件夹Resources,一些简单示例Samples以及一个集成了Samples和Documents的HTML文件。

由此可以看出DynamicWebTWAIN15.0Trial.exe 是为程序员准备的SDK开发包(安装在Windows操作系统的开发机上)。在本地安装之后,可以得到集成该SDK的所需的资源文件。

Dynamsoft Service

很多程序员使用Dynamic Web TWAIN SDK开发集成过程中,特别是集成之后即将在客户端进行测试时通常会有一个疑问:要在客户端使用Dynamic Web TWAIN,是否需要在客户端安装什么东西?

答案是肯定的。但是安装什么呢?是DynamicWebTWAIN15.0Trial.exe吗?

通过我们刚刚对DynamicWebTWAIN15.0Trial.exe的介绍,这个EXE仅需要在开发机安装,用于程序员对产品的开发集成。

其实在客户端,我们需要安装的是Dynamsoft Service,它用于浏览器和扫描仪驱动之间的通信,是客户端必不可少的且为一次性安装的,即,使用同样的版本只需要在客户端计算机上安装一次即可永久使用。那么在哪可以找到它的安装包呢?

通常,当程序员部署好网页扫描的项目,即将整个项目包含整个Resources文件夹部署到服务器上,通过一个从未访问过其他任何集成了Dynamic Web TWAIN网页的客户端访问部署的扫描网页,网页会自动弹出一个窗口。

点击Download按钮,即可下载到Dynamsoft Service的安装包:

DynamsoftServiceSetupTrial.msi - 客户端Windows系统;

DynamsoftServiceSetupTrial.pkg - 客户端macOS系统;

DynamsoftServiceSetupTrial.deb/DynamsoftServiceSetupTrial.rpm - 客户端Linux系统。

双击安装后,刷新浏览器页面,即可正常访问扫描页面。

程序员们在此刻肯定又有疑惑,这些安装包从何下载而来?事实上,当打开Resources的文件夹后,可以看到,这几个文件位于\Resources\dist下。即当您部署了整个项目(包含Resources),这些文件将会从部署至服务器项目中的\Resources\dist路径中下载。

同样的,如果程序员不希望在访问时弹出下载的窗口,那么就可以直接从\Resources\dist中拿到相应客户端系统的安装包,提前为客户端安装。安装之后再访问扫描页面就不会再有弹窗出现。

值得一提的是,当程序员在开发机上安装了DynamicWebTWAIN15.0Trial.exe开发包之后,Dynamsoft Service也会随之一起安装在开发机上,不需要另外安装。所以当使用安装好开发包的开发机去访问扫描页面时,并不会再出现提醒下载Dynamsoft Service的弹窗。

扫描仪TWAIN驱动

当在客户端安装好Dynamsoft Service之后,通常就可以在网页中调用扫描仪进行扫描了。但是有时也会发现扫描页面还是无法调用到扫描仪,在扫描仪列表中没有扫描仪出现(有时只出现扫描仪WIA的驱动,请参考>>WIA和TWAIN驱动的区别)。最大的可能性是因为扫描仪的TWAIN驱动没有在客户端本地安装。

扫描仪的TWAIN驱动,既不是Dynamic Web TWAIN SDK也不是Dynamsoft Service,这个驱动是由扫描仪厂家提供的。一般来说,支持TWAIN驱动的扫描仪附带的驱动安装光盘上会有TWAIN驱动的安装包,或者可以去扫描仪官网搜索该扫描仪型号,看看是否可以下载到相应的TWAIN驱动。(富士通ScanSnap系列不支持TWAIN驱动。)

另外,值得注意的是,

TWAIN协议在Windows上运行良好,但在macOS上运行效果不佳。 因此,Dynamsoft的SDK在macOS上也支持用Image Capture Architecture(简称为ICA)。

在Linux上,TWAIN不可用,因此使用了SANE。如官方介绍页面所述,SANE 代表“Scanner Access Now Easy”,是一个提供了标准化访问任何光栅图像扫描仪硬件(平板扫描仪,手持扫描仪,视频和静止摄像机,抓帧器等)的应用程序编程接口(API)。

总结

总体来说,

  • Dynamic Web TWAIN SDK - EXE安装包,由Dynamsoft提供,从官网下载,由程序员安装在开发机(Windows)上用于开发目的。.gz - Linux, .zip - macOS
  • Dynamsoft Service - msi(WindowsOS)、pkg(macOS)、deb/rpm(Linux)安装包,由Dynamsoft提供,从部署至服务器项目中的\Resources\dist路径中下载,由终端用户或者程序员安装在相应系统的客户端上。
  • 扫描仪TWAIN驱动 - 由相应的扫描仪厂商提供,由程序员或者终端用户安装在本地。

最后,希望本文能为使用Dynamic Web TWAIN的程序员以及终端用户解惑,如果仍有疑问,欢迎留言讨论。

浅谈Dynamic Web TWAIN SDK、Dynamsoft Service及扫描仪TWAIN驱动的区别(从版本13开始)相关推荐

  1. 我的FLASH情结2010—— 浅谈FLASH WEB GAME与创业

    声明:本文系转载,对原文有删节,出处链接地址 ★目录: →FLASH WEB GAME的系统架构 →FLASH WEB GAME的前端架构与人事分工 →前端与美术的配合 →前端与后端的配合 ===== ...

  2. 【推荐】我的FLASH情结2010——浅谈FLASH WEB GAME与创业(2)

    ★FLASH WEB GAME的前端架构与人事分工 →前端的主程序架构和模块划分与人手和人事分工是紧密联系在一起的,而这些很大程度上又是由项目本身决定的.纵观现在国内绝大多数FLASH WEB GAM ...

  3. 【ZZ】浅谈大型web系统架构 | 菜鸟教程

    浅谈大型web系统架构 http://www.runoob.com/w3cnote/large-scale-web-system-architecture.html 转载于:https://www.c ...

  4. 浅谈Dynamic 关键字系列之三(下):ExpandoObject,DynamicObject,DynamicMetaObject

    接上文:浅谈Dynamic关键字系列之三(上) 为什么TryXXX方法没有被调用?? 将DynamicProduct 中的name修饰符改为private: private string name; ...

  5. [转]浅谈php web安全

    作者:phpben 来源:http://www.phpben.com/?post=79 浅谈php web安全 前言: 首先,笔记不是web安全的专家,所以这不是web安全方面专家级文章,而是学习笔记 ...

  6. [转]我的FLASH情结2010——浅谈FLASH WEB GAME与创业(下)

    我的FLASH情结2010--浅谈FLASH WEB GAME与创业 ★前端与美术的配合 →老闪客们应该都知道,FLASH这款软件在历史很长一段时间内都是用来做动画的,闪客和美术在这段时间内本就是同根 ...

  7. 浅谈iOS和Android后台实时消息推送的原理和区别

    http://www.52im.net/thread-286-1-1.html 前言 iOS和Android上的实时消息推送差异很大,往小了说是技术实现的差异,往大了说是系统实现理念的不同.实时消息推 ...

  8. 浅谈无缓存I/O操作和标准I/O文件操作区别 (转载)

    首先,先稍微了解系统调用的概念: 系统调用,英文名system call,每个操作系统都在内核里有一些内建的函数库,这些函数可以用来完成一些系统系统调用把应用程序的请求传给内核,调用相应的的内核函数完 ...

  9. 浅谈python 里面的单下划线与双下划线的区别

    更新时间:2017年12月01日 10:30:13   作者:空气中的臭氧 这篇文章主要介绍了浅谈python 里面的单下划线与双下划线的区别,小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起 ...

最新文章

  1. DIV + CSS布局的一些知识汇总
  2. SSH框架是个怎么回事?(转)
  3. 用gcc编译实现对Linux系统cpu占用
  4. STL的remove函数和list的remove成员函数
  5. 数据库元数据数据字典查询_3_列出给定表的基本信息
  6. 压力测试和负载测试区别_如何理解与区分软件性能测试、负载测试、稳定性测试、压力测试...
  7. unity, GL.TexCoord or GL.Color must put before GL.Vertex!!!
  8. mybatis模糊查询sql
  9. vivo V15 Pro渲染图曝光 弹出式摄像头后置三摄
  10. html span离div块有边距,html块 div span
  11. char*和CString转换
  12. 转载+收藏 数理化地生常用软件
  13. 4.JUC-共享模型之无锁
  14. 转载 三极管饱和及深度饱和状态的理解和判断!!
  15. linux 图片转视频教程,如何在Ubuntu上转换图像、音频和视频格式
  16. 大学生创新创业大赛案例_七大学生创新创业大赛样本示例
  17. SpringBoot项目运行环境问题【统一答疑】
  18. pg_repack安装及使用
  19. C++性能优化(十二)——自旋锁
  20. 实验八 Python文件处理

热门文章

  1. Cross-Site Scripting: DOM
  2. Django--1、MTV及基本应用
  3. .eml文件发件人From、收件人To、抄送人Cc中包含中文,显示乱码的问题解决办法
  4. 一位空姐对飞机上26位明星的印象(吐血推荐)
  5. 互联网大厂也乘帆出海,出海不再是新鲜事
  6. Seata 源码分析 - tm、rm 中 xid 传递过程
  7. 移动问卷调查、企业问卷调查解决方案
  8. 用注意力probe估计神经网络组件提供多少句法信息
  9. yum 安装oraclejdk_linux服务器上安装jdk的两种方法(yum+下载包)
  10. 测试用例概念及组成,编写测试用例的方法