文档扫描功能是软件开发者建立一个网站,内容管理系统,或办公自动化系统的重要组成部分。 市场上有几种不同的扫描驱动程序:

  • TWAIN
  • WIA
  • ISIS
  • SANE

当然,对于什么是最佳解决方案,您可能会感到困惑。TWAIN,WIA,ISIS和SANE都是支持从扫描仪获取物理图像并将数字图像存储在计算机上的扫描驱动程序。 尽管他们基本上试图实现相同的任务,但搜索热门度显示TWAIN处于领先地位。

这四个文档扫描驱动程序具有一些不同的扫描仪功能和兼容性,这使其适用于不同情况。 让我们逐一介绍他们。

TWAIN


TWAIN是一种扫描协议,最初被用于Microsoft Windows和Apple Macintosh操作系统,并且从2.0版开始添加了Linux / Unix支持。 第一版发布于1992年。它被设计为图像处理软件与扫描仪或数码相机之间的接口。

TWAIN是文档扫描仪中最常用的协议和标准。 在大多数情况下,用户应该可以为他们的扫描仪找到免费的TWAIN驱动程序,或者可以从制造商的网站上轻松找到TWAIN驱动程序,比如佳能,惠普,爱普生,柯达,施乐等。

该软件具有三个关键要素:

  • Applictaion
  • Source Manager
  • Data Source (数据源)

TWAIN提供的Source Manager接口使您的应用程序可以控制Data Source,例如扫描仪和数码相机,并获取图像,如下图所示。

尽管几乎所有扫描仪都包含符合TWAIN标准的TWAIN驱动程序,但是每个TWAIN扫描仪驱动程序在实现扫描仪设置对话框、自定义功能和其他功能方面可能会略有不同。如果您使用特定扫描仪型号的功能,那没有问题,但是,如果您希望应用程序的扫描行为在不同的扫描仪上保持一致,则需要警惕自定义代码。

TWAIN标准现在正在演变为下一代——TWAIN direct。 TWAIN工作组声称,通过TWAIN direct将不再需要供应商提供特定的驱动程序。 该应用程序将能够直接与扫描设备进行通信。 (Dynamsoft是TWAIN工作组的成员之一。)目前TWAIN direct仍然在完善中。

如果您对TWAIN扫描SDK感兴趣,可以查看我们提供的SDK:

  • Dynamic Web TWAIN(JavaScript / HTML5 TWAIN SDK,用于基于Web的应用程序)
  • Dynamic .NET TWAIN(.NET TWAIN SDK,用于基于桌面的应用程序)

WIA

WIA (Windows Image Acquisition)是自Window Me以来由Microsoft引入的,是Windows操作系统随附的驱动程序平台,包括Windows 7,Windows 8等。它使应用程序能够从各种数码相机和扫描仪获取图像。 听起来与TWAIN非常相似,不是吗?

只要安装了驱动程序,TWAIN和WIA都可以与扫描仪和照相机一起使用。 通常,如果您的应用程序大多数时候将要与扫描仪进行交互,尤其是在需要支持旧扫描仪的情况下,建议使用TWAIN。 对于相机,WIA提供更好的支持。 但是,有时基于TWAIN的应用程序可以通过“TWAIN compatibility layer”与WIA设备进行通信,例如扫描仪或照相机。

TWAIN和WIA之间还有其他区别。 TWAIN具有三种传输模式(native, memory, file),而WIA仅具有两种传输模式(memory, file)。 TWAIN使设备供应商可以为每个驱动程序创建自定义的用户界面。 WIA根据脚本对象模型对所有设备使用简化的用户界面。 如果只需要基本的扫描功能,则WIA就足够了。 如果您需要使用扫描仪的更高级功能,例如在双面模式下扫描每页时使用不同的选项,则应选择TWAIN。

ISIS

ISIS(Image and Scanner Interface Specification)是Pixel Translations(如今的EMC Captiva)在1990年开发的专有扫描仪接口。

与非营利组织制作的TWAIN不同,ISIS并非免费提供。 扫描仪供应商需要支付版权费才能使用ISIS驱动程序。 尽管ISIS最初是针对生产环境(更高的产量,支持高端扫描仪的高级功能)而设计的,但高昂的成本却使供应商望而却步。 因此,ISIS在企业中并不受欢迎。

此外,尽管ISIS在性能方面享有盛誉,但许多开发人员还声称,将ISIS与TWAIN进行比较时,没有发现明显的技术优势。

SANE


SANE (Scanner Access Now Easy) 是UNIX(包括GNU / Linux)中常用的应用程序编程接口(API)。 SANE是一个开源项目。 您可以从http://www.sane-project.org/source.html下载其源代码。

与TWAIN不同,SANE将用户界面(前端)与设备驱动程序(后端)分开。SANE driver只提供一个后端接口,通过硬件和使用多个“options”来驱动每次扫描。定义扫描区域的option示例如下所示,


这种分离的实现方式使SANE非常适合网络扫描方案,在该方案中,您将所有计算机都连接在LAN中,而扫描仪仅作为共享扫描仪连接到一台或两台计算机上。 此外,无需像使用TWAIN一样使用Win32或Mac API绑定特定的GUI,SANE易于实现一个由命令行驱动的界面。 另一方面,SANE确实有一些GUI,例如XSane,phpSANE等,您可以根据需要使用。 或者,您可以为一个扫描仪专门定制一个GUI。

总结

那么,现在您已经有了一个主意并下定了决心吗?

下面是这四个驱动程序的比较表,总结了上面提到的内容。

TWAIN WIA ISIS SANE
扫描功能 ✮✮✮✮ ✮✮✮ ✮✮✮✮✮ ✮✮✮✮
数码相机支持 ✮✮✮✮ ✮✮✮✮✮ ✮✮
操作系统支持 Windows, Mac OS, Linux/Unix Windows Windows Linux/Unix
扫描仪市场份额 ✮✮✮✮✮ ✮✮✮✮ ✮✮ ✮✮
应用市场份额 ✮✮✮✮✮ ✮✮✮✮ ✮✮ ✮✮
价格 免费 免费 昂贵 免费且开源

TWAIN驱动程序在大多数情况下均具有优越性,因为它提供了与扫描仪的最大兼容性,并提供了根据扫描仪型号自定义扫描的自由。 如果您要构建一个简单的扫描应用程序,则WIA也可能适用。

ISIS仅在有特定要求的情况下才适用。 SANE为整个网络扫描以及没有Windows系统的系统提供了最佳支持。

建立一个将文件扫描为PDF的网页

在本教程中,我们将逐步向您展示如何构建一个简单的HTML页面来扫描文档并将其另存为PDF文件。(点击下图)

文件扫描-TWAIN,WIA,ISIS,SANE相关推荐

  1. 建立一个将文件扫描为PDF的网页

    如果您正在开发需要处理不同的数字文件格式功能的Web应用程序,没准PDF将是一个必须具备的文件格式. 将文本和图形页面转换为PDF会生成一个压缩且视觉清晰的文件,通常可以使用Adobe Reader在 ...

  2. web目录文件扫描工具 dirmap 简介

    知名的web目录文件扫描工具有很多,如:御剑1.5.DirBuster.Dirsearch.cansina. 其他开源的各种轮子,更是数不胜数. 这次我们不造轮子,我们需要造的是一辆车!open so ...

  3. android Mp3播放器之音频文件扫描

    文件扫描类.代码很简单将扫描到的文件保存在Vector<file>列表里 [java] view plain copy package com.aws.util; import java. ...

  4. web目录字典_Dirmap:一款高级Web目录文件扫描工具

    前言 本人是一名立志安全开发的大学生,有一年安全测试经验,有时在刷src的时候,需要检查所有target的web业务系统是否泄露敏感目录.文件,工作量十分庞大,于是Dirmap诞生了~ 知名的web目 ...

  5. 快速文件扫描王用户协议

    用户协议 1.导言 欢迎您使用" 快速文件扫描王"软件及相关服务! " 快速文件扫描王 "软件及相关服务,系指北京爱尚苹果信息科技有限公司及其关联方(以下简称& ...

  6. 用手机把纸质文件扫描成pdf的方法分享,不能错过哦。

    用手机把纸质文件扫描成pdf的方法分享!相信很多小伙伴日常在处理文件的时候,碰到的纸质文件还是非常多的,而且经常会需要我们将纸质的文件转换成电子文件,这时候重新开始写或者重新制作显然是不太现实的,当然 ...

  7. android 文件扫描MediaStore

    1.概述 项目中可能会有对android系统文件进行选择查看等操作,比如修改图像,文件浏览器等场景.前不久因为项目需要,需要实现一个文件浏览器,所以在此分享一下项目中的一些经验. 2.权限获取 < ...

  8. 文件服务器查询重复文件,DupScout – 重复文件扫描、删除或移动的免费工具

    时间一长,电脑硬盘难免会产生不少重复文件,就比如我,经常会涉及到一些照片或图片的处理,为了保留每次处理的成果 ,经常会复制备份,久而久之,数量一多,乱成一团.虽然一些系统优化工具中也带有查找重复文件的 ...

  9. mac多个html合并,如何在Mac上将多页文件扫描合成一个PDF文档

    您想要扫描杂志.报纸或文档的多个页面,并将其保存合并到一个PDF文件中吗?现在,不需要手动逐页扫描,也很容易做到.在Mac上将多个页面扫描合成一个PDF文件,你所需要的只是正确的软件.有很多软件可供选 ...

最新文章

  1. 简单的梯度下降算法,你真的懂了吗?
  2. cactiez----监控windows主机 server 2008 r2
  3. linux下root密码修改方法
  4. switch语句格式_JavaScript流程控制语句_if语句(十一)
  5. SqlServer2008r2卸载
  6. Linux perf tools
  7. 安卓应用安全指南 4.4.1 创建/使用服务 示例代码
  8. 【Gym - 101234A】Hacker Cups and Balls【线段树 + 二分答案】
  9. ARM汇编指令集与机器码
  10. Maya粒子消散特效制作(二)
  11. 4412开发板项目实战-云服务器智能家居
  12. Tipask,Tipask建站,Tipask插件
  13. uni-app 华为离线推送 Assist_HW: get hms token failed:6003: certificate fingerprint error
  14. 2017寒假作业 计科1501 李俊01
  15. 思量QQ本地会员v3.8官方2013版【免费使用部分QQ会员功能】
  16. 微信小程序 将手机号存入通讯录
  17. 使用ArcGIS为tif影像生成tfw文件
  18. 安卓仿淘宝首页的分类标签实现(横向滑动)
  19. 某电子计算机主机,2018年南开大学数学科学学院432统计学[专业硕士]之概率论与数理统计教程考研仿真模拟五套题...
  20. 互联网日报 | 华为发布首款商用台式机;京东健康正式登陆港交所;苹果推出首款头戴式耳机...

热门文章

  1. 第一周python学习
  2. Dmoz对Google的PageRank影响(转)
  3. 解决excel数据透析表计算类型没有非重复计数选项
  4. 数据库常见问题汇总Subquery returns more than 1 row
  5. ubuntu 安装ATI驱动
  6. C和python中%d %.2d %2d %02d的区别
  7. 用jQuery添加dragstart,dragover和drop事件,实现拖拽效果
  8. C#基础 Hashtable 修改键所对应的值
  9. python将图片插入word文件的指定位置,并转为pdf文件
  10. Java程序的基本结构