third_party_sane-airscan:基于 SANE 的 AirScan 与 WSD 文档扫描后端项目

用户可通过该项目实现对支持 AirScan(eSCL)和 WSD 协议的网络扫描仪及多功能一体机的驱动less 扫描。它支持自动设备发现、多种扫描模式,兼容众多品牌设备,且内存占用低。【此简介由AI生成】

分支55Tags5
文件最后提交记录最后更新时间
6 年前
5 年前
3 个月前
5 年前
5 年前
6 年前
9 个月前
5 年前
5 年前
5 年前
2 年前
10 个月前
11 个月前
1 年前
10 个月前
6 年前
5 年前
5 年前
1 年前
1 年前
1 年前
1 年前
1 年前
1 年前
2 年前
5 年前
1 年前
5 年前
2 年前
1 年前
3 年前
5 年前
1 年前
2 年前
5 年前
2 年前
5 年前
2 年前
5 年前
2 年前
5 年前
5 年前
5 年前
5 年前
5 年前
4 年前
5 年前
1 年前
2 年前
1 年前
1 年前
1 年前
1 年前
1 年前
6 年前
9 个月前
2 年前
6 年前
6 年前
6 年前
6 年前
2 年前
11 个月前
1 年前
1 年前
6 年前
2 年前
2 年前
5 年前
5 年前
2 年前
6 年前

sane-airscan —— 支持 AirScan (eSCL) 和 WSD 文档扫描仪的 SANE 后端

如同大多数现代网络打印机通过通用厂商中立协议实现"免驱动打印",如今许多网络扫描仪和多功能一体机也支持"免驱动扫描"技术。

免驱动扫描主要分为两种模式:

  • 苹果 AirScanAirPrint 扫描(官方协议名称为 eSCL)
  • 微软 WSDWS-Scan(WSD 即"设备网络服务")

本后端同时实现这两种协议,并能自动切换适配。经实测可完美兼容 BrotherCanonDellKyoceraLexmarkEpsonHPOKIPanasonicPantumRicohSamsungXerox 等品牌设备在 WSD 和 eSCL 模式下的工作。

苹果公司为 eSCL 设备维护着兼容设备清单,但需注意该列表不仅包含扫描仪和多功能一体机,也包含纯打印机机型。

本后端无需安装,且不会与厂商专有软件(如佳能的 ScanGear、惠普的 HPLIP 等)产生冲突。

功能特性

  1. 单一后端支持 eSCL 和 WSD 双协议
  2. 支持自动/手动设备发现与配置
  3. 支持平板/ADF 进纸器扫描,单双面扫描模式,ADF 多页连续扫描
  4. 支持彩色与灰度扫描模式
  5. 逐行图像解压技术,内存占用更优
  6. 硬件级快速取消扫描操作
  7. 全面支持 IPv4/IPv6 网络协议

兼容性

理论上所有支持 eSCLWSD 的扫描仪均可使用。下表为实际测试设备清单,若您的设备未列其中但能正常工作,欢迎反馈。

多数设备通过有线网络测试。但所有 eSCL 设备在安装 IPP-over-USB 守护程序后均可通过 USB 连接使用,而仅支持 WSD 的设备无法通过 IPP-over-USB 使用。

IPP-over-USB 通常随 ipp-usb 软件包默认安装。若您的系统未预装,请访问项目主页获取:ipp-usb

图例说明:

  • Yes - 设备完全兼容
  • No - 设备不支持该协议
  • ? - 用户报告可用但未明确协议支持
  • 空格 - 该模式/设备组合无测试数据
设备型号 eSCL 模式 WSD 模式
Brother ADS-2700W No Yes
Brother ADS-4300N Yes Yes
Brother DCP-7055W No Yes
Brother DCP-7070DW No Yes
Brother DCP-9020CDW No Yes
Brother DCP-J552DW No Yes
Brother DCP-L2540DW No Yes
Brother DCP-L2550DN / DCP-L2550DW Yes
Brother HL-L2380DW 系列 No Yes
Brother HL-L2395DW 系列 Yes
Brother MFC-7360N No Yes
Brother MFC-8710DW No Yes
Brother MFC-J1012DW Yes
Brother MFC-J1300DW Yes
Brother MFC-J4410DW No Yes
Brother MFC-J4540DW Yes
Brother MFC-J4620DW No Yes
Brother MFC-J470DW No Yes
Brother MFC-J485DW Yes
Brother MFC-J625DW No Yes
Brother MFC-L2700DW No Yes
Brother MFC-L2710DN 系列 No Yes
Brother MFC-L2710DW Yes Yes
Brother MFC-L2720DW No Yes
Brother MFC-L2750DW Yes Yes
Brother MFC-L3740CDWE Yes
Brother MFC-L3750CDW No Yes
Brother MFC-L3780CDW No Yes
Brother MFC-T910DW Yes Yes
Canon D570 Yes
Canon G600 系列 Yes
Canon imageCLASS MF642C/643C/644C Yes
Canon imageCLASS MF743cdw Yes1
Canon imageRUNNER 2625/2630 Yes Yes
Canon imageRUNNER ADVANCE 4545/4551 Yes Yes
Canon imageRUNNER ADV C5550/5560 Yes
Canon imageRUNNER C3120L Yes Yes
Canon i-SENSYS MF4780w No Yes4
Canon i-SENSYS MF641C No Yes2
Canon LiDE 300 Yes3
Canon LiDE 400 Yes3
Canon MB5100 系列 Yes
Canon MB5400 系列 Yes Yes
Canon MF110/910 Yes
Canon MF240 系列 No Yes4
Canon MF260 系列 Yes Yes4
Canon MF410 系列 Yes Yes
Canon MF440 系列 Yes Yes
Canon MF645Cx Yes
Canon MF650C 系列 Yes
Canon MF745C/746C Yes Yes
Canon MG5200 系列 No Yes
Canon MG5300 系列 No Yes
Canon MX470 系列 No Yes
Canon PIXMA G3000 系列 No Yes
Canon PIXMA G4010 系列 Yes3
Canon PIXMA MG3600 系列 Yes
Canon PIXMA MG5500 系列 No Yes
Canon PIXMA MG7700 系列 Yes
Canon PIXMA TS5000 系列 Yes
Canon PIXMA TS 9550 系列 Yes
Canon TR4529 (PIXMA TR4500 系列) Yes Yes
Canon TR4700 系列 Yes
Canon TR7500 系列 No Yes
Canon TR8600 扫描仪 Yes
Canon TS 3100 Yes
Canon TS 3300 Yes
Canon TS 3400 系列 Yes
Canon TS 6151 Yes
Canon TS 6200 系列 Yes Yes
Canon TS 6300 系列 Yes
Canon TS 6400 系列 Yes
Canon TS 8230 系列 No Yes
Dell C1765nfw 彩色一体机 No Yes
Dell C2665dnf 彩色激光打印机 No Yes
Dell C3765dnf 彩色一体机 No Yes
Dell E514dw
EPSON ET-2650 系列
EPSON ET-2710 系列
EPSON ET-2750 系列
EPSON ET-2760 系列
EPSON ET-2810 系列
EPSON ET-2850 系列
EPSON ET-3750 系列
EPSON ET-4750 系列
EPSON ET-4850 系列
EPSON ET-M2170 系列
EPSON L6570 系列
EPSON Stylus SX535WD
EPSON WF-2760 系列
EPSON WF-3620 系列
EPSON WF-7710 系列
EPSON XP-2100 系列
EPSON XP-340 系列
EPSON XP-352 355 系列
EPSON XP-442 445 系列
EPSON XP-5100 系列
EPSON XP-6100 系列
EPSON XP-7100 系列
EPSON XP-8600 系列
HP Color Laserjet MFP 178 178
HP Color LaserJet MFP M182nw
HP Color LaserJet MFP M281fdw
HP Color LaserJet MFP M283fdw
HP Color LaserJet MFP M477fdw
HP Color LaserJet Pro M478f-9f
HP Color LaserJet Pro MFP M277dw
HP DeskJet 2540
HP DeskJet 2600 系列
HP DeskJet 2700 系列
HP Deskjet 3520 系列
HP DeskJet 3700 系列
HP DeskJet 4100 系列
HP DeskJet 5000 系列
HP DeskJet 5200 系列
HP ENVY 4500
HP ENVY 5055 系列
HP ENVY 5530 系列
HP ENVY 5540
HP ENVY 5640
HP ENVY 6000 系列
HP ENVY Photo 6200 系列
HP ENVY Photo 7800 系列
HP ENVY Pro 6400 系列
HP Color Laser MFP M178nw
HP LaserJet 200 colorMFP M276n
HP LaserJet MFP E62655
HP LaserJet MFP M130fn
HP LaserJet MFP M130fw
HP LaserJet MFP M140w
HP LaserJet MFP M227sdn
HP LaserJet MFP M426dw
HP LaserJet MFP M630
HP LaserJet Pro M28a 3
HP LaserJet Pro M28w
HP LaserJet Pro M329 9
HP LaserJet Pro MFP 148fdw
HP LaserJet Pro MFP M125 系列
HP LaserJet Pro MFP M127fn
HP LaserJet Pro MFP M225dn
HP LaserJet Pro MFP M428dw 9
HP LaserJet Pro MFP M521 系列
HP Laser MFP 131 133 135-138
HP Neverstop Laser MFP 1202nw
HP OfficeJet 3830 系列
HP Officejet 4630
HP Officejet 5740 系列
HP Officejet Pro 6970
HP OfficeJet Pro 6978
HP OfficeJet Pro 7740
HP OfficeJet Pro 8010 系列
HP OfficeJet Pro 8020 系列
HP OfficeJet Pro 8730
HP OfficeJet Pro 9010 系列
HP ScanJet Pro 2000 s2 3
HP ScanJet Pro 3500 fn1 3
HP ScanJet Pro 4500 fn1
HP Smart Tank 5100 系列
HP Smart Tank Plus 550 系列
Kyocera ECOSYS M2035dn 5
Kyocera ECOSYS M2040dn 5
Kyocera ECOSYS M2640idw 5
Kyocera ECOSYS M5521cdw 5
Kyocera ECOSYS M5526cdw
Kyocera FS-1028MFP 5
Kyocera TASKalfa 3051ci 5
Lexmark CX317dn 6 6
Lexmark MB2236adw
Lexmark MC2535adwe
Lexmark MC3224adwe
Lexmark MC3326adwe
OKI-MB471
OKI-MC332dn
OKI-MC362dn
OKI-MC853
Panasonic KV-S1058Y
Pantum BM5100ADW 系列
Pantum M6500W 系列
Ricoh MP C3003 7
Samsung M2070 系列
Samsung M267x 287x 系列
三星 M288x 系列
三星 M337x 387x 407x 系列 8
三星 SCX-3400 系列
夏普 MX-3060N 9
施乐 B205
施乐 B215 10
施乐 C235
施乐 VersaLink B405
施乐 WorkCentre 3025
施乐 WorkCentre 6027 10
施乐 WorkCentre 6515
待办事项

[1]: 此设备需通过网页控制台手动启用AirPrint扫描功能:主页->菜单->首选项->网络->TCP/IP设置->网络链接扫描设置->开启。

[2]: 本设备需手动启用WS扫描功能:主页->菜单->首选项->网络->TCP/IP设置->WSD设置->使用WSD扫描->开启

[3]: 此设备仅支持USB连接,但可通过IPP-over-USB守护程序良好运行。

[4]: 默认情况下该设备禁用WS扫描,使用前需启用:打开网页控制台,点击[设置/注册],选择[网络设置]->[TCP/IP设置],在[WSD设置]中点击[编辑],勾选[使用WSD扫描]复选框,点击[确定]

[5]: 此设备需通过前面板手动操作启动WSD扫描:发送->WSD扫描->从计算机

[6]: 内存不足时,本设备可能以400 DPI而非请求的600 DPI进行扫描。由于sane-airscan在实际接收图像前向SANE报告参数,随后调整实际图像至报告参数,此时图像将按2/3比例缩小。较低分辨率运行正常。

[7]: 默认禁用WS扫描,启用方法:打开网页控制台,点击[配置],在[扫描仪]下选择[初始设置],将[禁止WSD扫描命令]设为[不禁止](详见http://support.ricoh.com/bb_v1oi/pub_e/oi_view/0001047/0001047003/view/scanner/int/0095.htm)

[8]: 旧固件(测试版本V4.00.01.04 2013年4月9日)使用ADF扫描会导致设备重启。固件升级可解决,已知V4.00.02.20 2020年5月27日版本正常。

[8]: 需手动启用eSCL功能:系统设置->网络设置->AirPrint设置->Airscan

[9]: 默认禁用远程扫描和IPP-over-USB功能。在嵌入式网页服务器中:设置->安全->管理员设置->启用计算机或移动设备扫描->应用

[10]: 默认禁用WSD扫描。在嵌入式网页服务器中:属性->连接性->协议->WSD->启用

预装sane-airscan的发行版

以下发行版(按字母顺序)官方包含sane-airscan

  • ALT Linux(Sisyphus和p9)
  • Arch Linux(extra仓库)
  • Debian 10+
  • Fedora 32+
  • Gentoo(emerge media-gfx/sane-airscan)
  • NixOS
  • Ubuntu 20.10+

该列表持续更新且可能不完整。

此外,sane-airscan支持BSD系统,并已纳入FreeBSD、NetBSD和OpenBSD的ports。

预编译二进制安装

若您使用以下Linux发行版:

  • Debian(9.0和10)
  • Fedora(29、30、31和32)
  • openSUSE(Leap和Tumbleweed)
  • Ubuntu(16.04、18.04、19.04、19.10和20.04)

点击此链接获取软件包及详细安装说明。

注意:新构建后链接更新可能延迟,若遇"资源不可用"问题,可直接访问仓库:https://download.opensuse.org/repositories/home:/pzz/

强烈建议选择"添加仓库并手动安装"而非"直接获取二进制包",以便自动更新sane-airscan。

Linux Mint用户可选用对应Ubuntu版本包:

  • Linux Mint 18.x - 使用Ubuntu 16.04包
  • Linux Mint 19.x - 使用Ubuntu 18.04包
  • Linux Mint 20.x - 使用Ubuntu 20.04包

特别感谢openSUSE构建服务提供打包基础设施。

若您的发行版未列出,请参阅下文从源码安装章节。

从源码安装

安装依赖库 - Fedora及类似系统

以root权限执行以下命令:

dnf install gcc git make pkgconf-pkg-config
dnf install avahi-devel
dnf install libxml2-devel
dnf install libjpeg-turbo-devel libpng-devel libtiff-devel
dnf install gnutls-devel
dnf install sane-backends-devel

安装必备库 - Ubuntu、Debian 及类似系统

以 root 身份执行以下命令:

apt-get install gcc git make pkg-config
apt-get install libavahi-client-dev
apt-get install libxml2-dev
apt-get install libjpeg-dev libpng-dev libtiff5-dev
apt-get install libsane-dev
apt-get install gnutls-dev

下载、构建并安装 sane-airscan

git clone https://github.com/alexpevzner/sane-airscan.git
cd sane-airscan
make
make install

贡献指南

我们欢迎并衷心感谢所有符合以下条件的贡献:

  1. 您提议的功能对多数用户具有普遍价值
  2. 代码格式规范且质量优良

请注意,本项目设有两个分支:

稳定分支主要接受错误修复和代码改动较小的次要功能。重大功能请提交至开发分支。

付费咨询

若您的业务依赖本项目,且需要当前未实现的特定功能,可考虑付费委托我进行定制开发。

PVS-Studio

PVS-Studio 是一款支持 C、C++、C# 和 Java 的静态代码分析工具。

我曾在该工具的俄语开发者论坛与作者交流,承诺若其工具能在代码中发现有价值的问题,将在此处推荐他们的项目。最终该工具确实发现了若干真实缺陷,故特此履行承诺 😃

如今我定期使用 PVS-Studio 检测代码,效果显著。虽然这是商业软件,但他们为开源项目提供免费授权。

提交缺陷报告

请通过新建 GitHub Issue 提交问题。

为有效定位问题,请按以下步骤操作:

  1. /etc/sane.d/airscan.conf 配置文件中添加下列条目,启用 sane-airscan 的协议追踪功能:
[debug]
trace = ~/airscan/trace ; Path to directory where trace files will be saved

您可以使用任意目录路径,前提是您拥有创建和写入该目录的足够权限。该目录将自动创建。

  1. 重现问题。请注意,在重现问题时请勿使用任何机密文档,因为其内容将对他人可见。

  2. 仔细描述问题

  3. 在您指定为跟踪参数的目录中,将会生成两个文件。假设您使用的是 xsane 程序且设备名称为 "Kyocera MFP Scanner",则文件名将为 "xsane-Kyocera-MFP-Scanner.log""xsane-Kyocera-MFP-Scanner.tar"。请将这两个文件一并附加到新提交的问题中。

参考资料

eSCL 协议虽未公开文档化,但该协议基于 HTTP 和 XML 构建,结构简单且易于逆向工程。网络上有大量与该协议相关的资源,其中特别推荐以下链接:

  • kno10/python-scan-eSCL - 一个微型 Python 脚本,支持从兼容 eSCL 的扫描仪获取扫描件
  • SimulPiscator/AirSane - 该项目解决了反向需求,可将任何兼容 SANE 的扫描仪转换为 eSCL 服务器。作者声明其兼容 Mopria 和 Apple 客户端
  • markosjal/AirScan-eSCL.txt - 基于逆向工程整理的 eSCL 协议说明文档。内容虽不完整且偶有偏差,但提供了良好的入门指引

项目介绍

用户可通过该项目实现对支持 AirScan(eSCL)和 WSD 协议的网络扫描仪及多功能一体机的驱动less 扫描。它支持自动设备发现、多种扫描模式,兼容众多品牌设备,且内存占用低。【此简介由AI生成】

https://gitcode.com/openharmony-sig/third_party_sane-airscan定制我的领域