文档扫描协议比较。

博客类别:TWAIN.NET

2025/08/25

现代文档处理系统越来越多地与外围设备集成,以获取纸质介质的数字副本。开发此类解决方案的关键问题在于选择与图像/文档扫描仪交互的协议。在本文中,我们将分析主要标准,评估它们的优势和局限性,并探讨如何使用VintaSoft TWAIN .NET SDK实现对这些标准的支持。



1. 使用 TWAIN 扫描仪扫描文档

TWAIN 是一种标准,它定义了软件协议和 API(应用程序编程接口),用于软件应用程序和成像设备(例如扫描仪和数码相机)之间的通信。

TWAIN 是一种标准,因此可确保不同设备和应用程序之间交互的统一性,从而简化图像处理软件的开发和使用。


1.1.支持的操作系统

TWAIN 标准声明支持 Windows、Linux 和 macOS 操作系统。


1.2. 设备驱动程序的可用性

要使用 TWAIN 设备,您必须在操作系统中安装 TWAIN 驱动程序。

图像扫描仪的 TWAIN 驱动程序通常由图像扫描仪制造商开发--因此,TWAIN 驱动程序可以访问图像扫描仪的所有功能,并确保图像扫描仪的最大工作速度。

TWAIN 标准是 Windows 操作系统中最流行、最基本的图像扫描仪标准。几乎所有图像扫描仪都有适用于 Windows 的 TWAIN 驱动程序。

目前,VintaSoft 的员工只见过柯达提供的真正可用的 Linux TWAIN 驱动程序。

VintaSoft 的员工对适用于 macOS 的现代图像扫描仪的 TWAIN 驱动程序一无所知。在苹果论坛上,您可以找到相关信息,苹果已于 2019 年左右正式停止在其 macOS 操作系统中支持 TWAIN 标准。


1.3. 将图像从图像扫描仪传输到客户端应用程序

TWAIN 标准定义了三种将扫描图像从图像扫描仪传输到客户端应用程序的模式。"原生"模式允许将图像作为 Windows 位图对象传输。"内存"模式允许通过内存传输图像,即数据以字节数组的形式传输,其中包含"原始"图像数据或编码(例如 CCITT4 或 JPEG)图像数据。"文件"模式允许将扫描图像直接保存到文件中。三种模式的存在使得用户可以选择最符合客户端应用程序逻辑的模式,从而实现最佳性能和灵活性。


1.4. 使用图像扫描仪功能

TWAIN 标准包含 700 多页的文本,详细描述了 TWAIN 驱动程序和应用程序之间的交互过程。TWAIN 标准提供了与图像扫描仪几乎所有功能配合使用的能力。


1.5.图像扫描仪速度

使用 TWAIN 标准可显著提升图像/文档扫描仪的扫描速度。


1.6. 技术支持

TWAIN 标准由"TWAIN 工作组"(网站:https://twain.org)开发,该工作组是一个支持和开发 TWAIN 标准的非营利组织。该工作组由多家图像扫描仪制造商和软件开发公司组成。




2. 使用 SANE 扫描仪扫描文档

SANE(Scanner Access Now Easy,即"轻松访问扫描仪")是一个开源应用程序编程接口,它为访问光栅图像扫描仪提供了一个标准化的接口。SANE 允许从各种设备(例如平板扫描仪和相机)获取图像。SANE 实现了设备驱动程序与设备用户界面的清晰分离。


2.1. 支持的操作系统

SANE API 是 Linux 操作系统上操作图像扫描仪最流行、最基本的标准。


2.2.设备驱动程序的可用性

几乎所有图像扫描仪都为 Linux 系统提供 SANE 驱动程序。

SANE 驱动程序可由图像扫描仪制造商或 SANE 社区提供。SANE 是一个 API,仅定义 SANE 驱动程序的架构。SANE 驱动程序的具体实现取决于驱动程序开发人员。大多数 SANE 驱动程序由 SANE 社区的开发人员开发。

要使用 SANE 设备,您必须在 Linux 操作系统中安装 SANE 驱动程序。支持 SANE API 的设备列表可在此处找到:http://www.sane-project.org/sane-supported-devices.html


2.3. 将图像从图像扫描仪传输到客户端应用程序

SANE 设备通过内存传输图像数据,即扫描的图像数据以字节数组的形式传输,其中包含"原始"图像数据。


2.4.使用图像扫描仪功能

定义 SANE API 的文档并不大,它定义了图像扫描仪的基本功能,即 SANE API 定义了一个用于简单图像采集的 API,无需使用图像扫描仪的高级功能。同时,SANE 驱动程序开发人员可以实现对高级功能的支持,但这些功能将超出 SANE API 的范围。


2.5. 图像扫描仪速度

使用 SANE API 可确保图像/文档扫描仪的良好性能。


2.6. 技术支持

SANE 项目(网站 http://www.sane-project.org)是一个开源项目,允许对其源代码进行自由修改和分发,以便社区协作并促进持续改进和更新。


3. 使用 eSCL 扫描仪扫描文档

eSCL(可扩展扫描仪控制库)是由 Mopria 联盟开发的一种标准,它定义了一种图像扫描协议,使各种设备无需安装驱动程序即可进行无线扫描。eSCL 协议使用 HTTP(S) 和 XML 在图像扫描仪和使用该图像扫描仪的应用程序之间进行通信。


3.1. 支持的操作系统

eSCL 协议可用于 Windows、Linux、macOS 和 Android 系统。eSCL 协议可以使用有线或无线网络。


3.2.设备驱动程序的可用性

使用 eSCL 设备无需在操作系统中安装驱动程序。通常,eSCL 设备是运行 Web 服务器的 Linux 设备,该服务器使用 eSCL 协议向设备发送请求。Web 服务器还提供 Web 界面,允许用户配置扫描参数并通过 Web 浏览器方便地管理图像扫描任务。

支持 eSCL 协议的设备列表可在此处找到:https://mopria.org/it/certified-products


3.3. 将图像从图像扫描仪传输到客户端应用程序

eSCL 标准规定,任何 eSCL 设备都必须支持将扫描的图像作为 JPEG 或 PDF 流传输。也就是说,为了使客户端应用程序能够从图像扫描仪接收扫描的图像,需要执行以下步骤:

如果需要将扫描的图像立即保存到文件或数据库,那么将图像从图像扫描仪传输到客户端应用程序的过程是最佳选择。如果需要在扫描后查看扫描的图像,则必须解码 JPEG 图像或渲染 PDF 页面--这是一个缺点,因为原则上存在不必要的中间"编码-解码"步骤。

eSCL 标准还定义了从图像扫描仪接收"原始"图像数据的功能,但此选项并非强制性的,并且并非所有 eSCL 扫描仪都支持此选项。


3.4. 使用图像扫描仪的功能

eSCL 协议规范包含 70 多页,定义了使用图像扫描仪的基本功能,也就是说,eSCL 协议适用于不使用图像扫描仪高级功能的简单图像扫描。


3.5.图像扫描速度

图像扫描速度取决于eSCL图像扫描仪和客户端应用程序所连接的网络速度。在大多数情况下,使用eSCL协议可以保证图像/文档扫描仪的良好工作速度。


3.6. 技术支持

Mopria联盟(网址:https://mopria.org)是由打印机制造商和软件开发商组成的组织,致力于创建和推广移动设备无线打印和扫描的通用标准。Mopria标准使获得认证的设备能够在网络上相互发现并交换数据,从而实现从智能手机和平板电脑等各种移动设备进行简单便捷的打印和扫描。




4. 使用WIA扫描仪扫描文档

WIA代表Windows图像采集。它是Windows操作系统的一个组件,允许软件与扫描仪和数码相机等成像设备通信。WIA为开发人员提供了一个API(应用程序编程接口),用于创建可以访问这些设备中图像的应用程序。


4.1. 支持的操作系统

WIA 是 Windows 操作系统的一个组件,因此兼容 WIA 的设备只能在 Windows 系统上使用。


4.2. 设备驱动程序的可用性

您无需为 WIA 设备安装 WIA 驱动程序即可使其工作,因为 Windows 操作系统中已预装了标准的 WIA 驱动程序。支持 WIA 的扫描仪在 Windows 中安装后即可立即使用。


4.3. 将图像从图像扫描仪传输到客户端应用程序

WIA API 定义了两种将扫描图像从图像扫描仪传输到客户端应用程序的模式。"内存"模式允许通过内存传输图像,即数据以字节数组的形式传输。"文件"模式允许将扫描图像直接保存到文件中。


4.4. 使用图像扫描仪功能

有关 WIA API 的信息可在 Microsoft 网站上找到:https://learn.microsoft.com/en-us/previous-versions/windows/desktop/wia/-wia-wia-application-programming-interface

WIA API 定义了一个 API,无需使用高级图像扫描仪功能即可轻松扫描图像。


4.5. 图像扫描仪速度

使用 WIA API 可为图像/文档扫描仪提供良好的性能。


4.6. 技术支持

WIA API 由 Microsoft 提供支持。


5.使用 ICA 扫描仪扫描文档

ICA 代表图像捕捉 (Image Capture)。ICA 是苹果公司开发的一个框架,旨在"搜索媒体设备并从您的应用程序以编程方式控制它们"。

ICA 框架是 macOS 操作系统的一部分,因此是 macOS 操作系统中处理图像扫描仪最流行、最基本的标准。

要使用 ICA 设备,您必须在 macOS 操作系统中安装 ICA 驱动程序。


6. 使用 ISIS 扫描仪扫描文档

ISIS 扫描标准是由 Pixel Translations(现为 OpenText 的一部分)开发的"图像和扫描仪接口"规范,用于驱动扫描仪等成像设备。它以其高性能、模块化和完整的高速扫描仪集成规范而闻名,使扫描仪能够以额定速度或更高速度运行。与更常见的 TWAIN 标准不同,ISIS 最初面向生产环境,并要求供应商为驱动程序支付版税,因此在企业领域不太流行。

要使用 ISIS 设备,必须在操作系统中安装 ISIS 驱动程序。

ISIS驱动程序最初由Pixel Translations开发,该公司后来成为EMC(现为OpenText)的一部分。扫描仪制造商付费给EMC以使用ISIS驱动程序并将其包含在他们的硬件中,或者他们从DELL EMC Captiva等公司购买开发套件和示例代码来创建自己的ISIS驱动程序。

使用ISIS驱动程序可为您的文档扫描仪提供最佳/最大速度。


7. 选择哪种图像扫描协议?

扫描协议的选择不仅应基于设备的技术特性,还应基于实际运行条件、业务需求和基础设施限制。

扫描仪类型和型号:

提示:在开始开发之前,请收集您的软件将要使用的扫描仪型号列表,并在制造商的网站上查看其规格。


质量和速度要求:


工作流程功能:

例如:如果您有一个包含数千张双面打印文件的档案,缺少双面扫描支持可能会使操作时间增加一倍。


实施和支持成本:
对于预算有限的项目,TWAIN 是最合理的选择。


8. 在 VintaSoft TWAIN .NET SDK 中实现

VintaSoft TWAIN .NET SDK 是一个专业的 .NET 图像扫描库,它允许您创建 .NET 应用程序来控制 Windows 和 Linux 中的 TWAIN 图像扫描仪、Linux 中的 SANE 图像扫描仪以及 Windows 和 Linux 中的 eSCL 图像扫描仪。

此外,VintaSoft TWAIN .NET SDK 提供 JavaScript API 和 VintaSoft Web TWAIN 服务,使 Web 开发人员能够快速轻松地创建跨浏览器 Web 应用程序,用于接收来自 Windows 和 Linux 系统中的 TWAIN 图像扫描仪、Linux 系统中的 SANE 图像扫描仪以及 Windows 和 Linux 系统中的 eSCL 图像扫描仪的图像。开发的 Web 应用程序可在所有主流 Web 浏览器中使用。

对于文档管理系统开发人员而言,选择扫描协议是一项战略决策。TWAIN 仍然是通用标准,而 VintaSoft TWAIN .NET SDK 提供便捷灵活的实现方式,支持 TWAIN、WIA(通过 TWAIN)、SANE 和 eSCL。通过适当的集成,您可以确保不同厂商的扫描仪在各种环境下(从桌面应用程序到云服务)稳定运行。