银河麒麟网络打印故障排查:CUPS、纸张匹配与双面打印
一次银河麒麟 Linux 网络打印故障排查:打印机能被发现,却无法正常出纸;随后又出现纸张不匹配、双面打印选项缺失以及默认配置不生效。本文按实际排障顺序复盘,并解释 CUPS、DNS-SD、IPP/IPPS、打印队列和打印机之间的完整工作流程。
隐私说明: 本文来自一次实际排障,已移除真实 IP、网络拓扑、用户名、主机名、打印机唯一标识、文档名称及工作环境信息。文中的
Office_Printer、printer-demo.local和/path/to/document.pdf全部是示例占位符,不能直接当作你的设备地址使用。截图、原始日志及内部文档未收录。适用范围: 主要针对运行 CUPS 的银河麒麟及其他 Linux 发行版,通过 IPP/IPPS 连接支持免驱打印的网络打印机。不同发行版、CUPS 版本、厂商固件及 WPS 版本的界面和选项可能不同。
1. 问题是怎样出现的?
环境:银河麒麟 Linux、CUPS 打印服务、奔图 M7100DN 系列网络多功能打印机、WPS 和 PDF 阅读器。
起初,电脑能够在打印对话框中找到打印机,但提交 PDF 后没有纸张输出。排查过程中先后观察到:
- CUPS 服务运行正常,但部分打印任务长时间显示“正在打印”。
- 日志出现
Job aborted because the destination printer/class has gone away.,即目标队列/打印目标在任务处理中不可用。 - 改用新建的固定打印队列后,打印机能够响应任务,但又亮起红灯。
- 打印机液晶屏明确提示 “自动进纸盒 / 纸张设置不匹配”。
- 部分旧队列在 PDF 软件中不显示双面选项,而新建的 IPP Everywhere 队列显示了双面选项。
- WPS 仍可能记住旧打印机;即便已配置系统默认 A4、双面,应用程序也可能单独指定不同选项。
本次排障的证据可以分成两类:
| 已观察到的事实 | 目前能作出的判断 |
|---|---|
CUPS 服务返回 active |
服务本身正在运行,但不代表任务能成功到达设备 |
| 任务日志提示目标队列消失 | 任务执行时目标队列不可用;不够证明究竟是哪个发现组件移除了它 |
| 网络解析、连通性和目标端口测试通过 | 网络访问基本可行;还不能证明 TLS、IPP、打印数据处理都成功 |
| 新的固定队列能进行普通打印 | 手动配置的队列在实际测试中可用 |
| 打印机面板提示纸张设置不匹配 | 纸张尺寸、类型或纸盒请求与设备配置不一致,必须检查实际打印参数 |
| 新队列出现双面选项 | 应用程序获得的队列能力信息发生变化;并不意味着硬件新增了功能 |
核心经验:不要把“打印机驱动坏了”当作所有 Linux 打印故障的默认解释。 先找出故障究竟发生在哪一层。
2. 电脑连接打印机,完整工作流程是什么?
2.1 先看全链路
【设备发现 / 配置阶段】
网络打印机开机并接入网络
│
├─ 获得自己的网络地址(DHCP 或静态配置)
│
├─ 对外发布 DNS-SD 打印服务(例如 _ipp._tcp / _ipps._tcp)
│ └─ 服务名称、主机名、端口、路径、能力摘要
│
▼
银河麒麟查找网络打印服务(mDNS/DNS-SD 等方式)
│
├─ 解析打印机主机名 → IP 地址
│
└─ 经 IPP 查询详细能力(Get-Printer-Attributes)
└─ 支持的纸张、双面、分辨率、数据格式、纸盒等
│
▼
CUPS 提供可选打印目标(临时发现队列或管理员创建的固定队列)
│
▼
WPS / PDF 阅读器显示打印机名称和支持的选项
【一次具体打印任务】
用户在 WPS / PDF 中按 Ctrl+P
│
├─ 选择队列、纸张、方向、单双面、份数
│
└─ 应用程序形成打印数据和任务属性
▼
提交到本机 CUPS 调度器(cupsd)
│
├─ 建立任务编号(Job ID)
├─ 任务进入相应队列,必要时在本地缓存
├─ 选用适当过滤器(filters)进行格式转换
└─ 交给 IPP/IPPS backend 负责发送
▼
主机名解析 + TCP 连接 +(使用 IPPS 时)TLS 握手
│
▼
IPP 提交任务和文档数据(例如 Print-Job)
│
▼
打印机固件接收并校验任务属性
│
├─ 数据格式是否支持?
├─ 纸张尺寸、类型、来源是否符合纸盒配置?
├─ 双面模式是否支持?
└─ 是否缺纸、卡纸、耗材或其他设备故障?
▼
解析页面数据 → 排版/光栅化(按设备能力)→ 成像 → 出纸
│
▼
IPP / CUPS / 打印机面板报告任务和设备状态
这只是通用模型,并非每台设备每次都严格按同一个数据格式、过滤器或 IPP 请求序列执行。比如某些打印机可以直接接收 PDF,有些需要先转换为 PWG Raster 等格式。123
2.2 第一步:打印机先拥有网络身份
打印机连上网线后,通常通过 DHCP 获得一个 IP,也可以手动配置静态地址。这个 IP 是负责网络通信的地址,并不等于 CUPS 队列名称。
如果打印机是通过 DNS-SD 自动发现的,系统往往看到类似下面的服务类型:
_ipp._tcp.local. # IPP 打印服务
_ipps._tcp.local. # 支持加密连接的 IPP 打印服务
这里要分清三个技术:
- mDNS(Multicast DNS):在本地链路上解析
.local名称,通常使用 UDP 5353;它不等于普通企业 DNS。4 - DNS-SD(DNS-Based Service Discovery):查找“这里有什么服务”,利用 PTR、SRV、TXT 等记录描述服务实例、目标主机、端口及附加信息。5
- IPP/IPPS:真正用于查询打印机能力、提交任务和读取状态的打印协议;发现设备与发送打印数据是两回事。36
例如,一条服务记录告诉电脑“有台打印机使用某主机名、某端口和某服务路径”;电脑接下来还要解析主机名并建立网络连接。发现列表里出现设备,只说明系统有了服务线索,不保证打印链路始终可用。
说明:DNS-SD 不一定总依赖 mDNS,也可以使用单播 DNS。企业网络可能限制组播,或者使用不同的发现与管理方式。
2.3 第二步:电脑询问打印机“你能做什么?”
以支持 IPP Everywhere 的设备为例,CUPS 可通过 IPP 的 Get-Printer-Attributes 查询能力。返回的属性可能包括:
| IPP 属性示例 | 作用 |
|---|---|
document-format-supported |
设备可以接受 PDF、PWG Raster 等哪些格式 |
media-supported / media-col-database |
纸张尺寸及更详细的纸张属性 |
sides-supported |
是否支持单面、双面长边或短边翻转 |
printer-resolution-supported |
支持的打印分辨率 |
print-color-mode-supported |
是否支持彩色/单色等选项 |
printer-state / printer-state-reasons |
当前设备状态及异常原因 |
这些是标准中的示例属性,具体设备可能提供不同子集,属性也可能受固件版本限制。3
这就是免驱打印(driverless)的核心:电脑不必预装针对某一型号的专有驱动,也能够通过标准协议查询能力、生成合适的数据并提交打印。
但“免驱”并不意味着“完全不需要软件处理”。CUPS 仍然可能通过通用过滤器转换格式,只是不需要专门为这一型号安装专有驱动。OpenPrinting 对该过程有完整说明。1
2.4 第三步:CUPS 如何建立“打印队列”
物理打印机、打印队列和打印任务是三个概念:
- 物理打印机:办公室里真正的硬件。
- 打印队列:CUPS 中记录了设备 URI、功能和状态的逻辑目标。
- 打印任务:某一次打印请求,具有编号、数据、份数、纸张和双面等属性。
同一台物理设备可以对应多个队列。例如:
Linux 电脑
├── 自动发现的队列 ──────────┐
│ ├── 同一台物理打印机
└── 手工创建的 Office_Printer ┘
CUPS 及相关组件在某些配置下会创建临时队列。临时队列的出现、保留与消失有生命周期规则,具体取决于 CUPS 版本以及是否运行 cups-browsed 等组件。7
这次出现过目标队列消失的错误,因此采用手工创建固定队列的办法绕过临时队列不稳定的可能性。
不过,“固定队列”只是指本地队列配置由管理员保留,不代表打印机的 IP 被固定。如果设备 URI 仍然采用 .local,后续打印仍需名称解析。如果 DHCP 改变地址,而名称解析没有及时更新,仍然可能发生故障。
2.5 第四步:WPS 提交的不是“直接让机器开始转纸”
用户点击 WPS 的“打印”后,一般是由应用程序和打印框架准备页面描述与打印参数,并提交给 CUPS。之后由 CUPS 负责排队和调度。2
CUPS 通常会:
- 分配任务编号,例如
Office_Printer-123。 - 记录任务所属队列、文档名称、用户选项等信息。
- 必要时在本地 spool 目录缓存控制信息和文档数据;传统 CUPS 的典型目录是
/var/spool/cups。6 - 选择合适的过滤器,把输入格式转换成目标打印机支持的数据格式。
- 启动相应网络 backend,把打印数据送往设备。8
例如:
PDF 文件
├─ 情况 A:设备支持直接接收 PDF → 可以直接发送合适的 PDF 数据
└─ 情况 B:设备需要其他页面描述格式 → 经 CUPS 过滤器转换
↓
IPP/IPPS backend
↓
打印机
“正在打印”有时只是表示 CUPS 正在处理或发送任务,并不等于纸张已经进入打印机。CUPS 的任务状态与设备实际出纸之间存在时间差和实现差异。
2.6 第五步:IPP/IPPS 如何把任务送出去?
一个常见的打印机设备 URI 形式如下(虚构主机名):
ipps://printer-demo.local:443/ipp/print
│ │ │ │
│ │ │ └── IPP 服务路径
│ │ └────── 服务端口
│ └───────────────────────── 目标主机名
└──────────────────────────────── 加密 IPP 协议
通常的网络流程可以理解为:
- 把
printer-demo.local解析为 IP。 - 建立到目标 IP、目标 TCP 端口的连接。
- 如果是
ipps://,协商 TLS 加密连接,必要时校验证书。 - 使用 HTTP 承载 IPP 消息,提交打印请求(例如
Print-Job)及文档数据。 - 根据设备实现,接收任务响应并查询状态。36
端口说明: IPP 通常使用 631 端口,但打印机也可能按其发布的服务配置通过 443 等端口提供 IPPS。不要看到 ipps:// 就断言端口必须是 443;应使用设备实际宣告或管理界面确认的 URI。9
2.7 第六步:为什么数据已到打印机,机器还是不出纸?
收到打印任务后,设备固件还需要核对:
- 打印数据格式能否处理;
- 请求的纸张是否与当前纸盒设定相符;
- 是否要求普通纸、厚纸、标签纸等特定介质;
- 是否指定手动进纸或其他纸盒;
- 是否要求双面,而当前介质/纸张是否支持该模式;
- 是否存在缺纸、卡纸、盖板、耗材等异常。
因此,“CUPS 收到任务 → 设备有机械动作 → 设备报警并停止” 完全可能同时成立。这次就是纸张设置不匹配给出了明确的设备端报错。
3. 实际排障:从 CUPS 检查到建立固定队列
3.1 检查 CUPS 服务与任务
# 查看 CUPS 是否运行
systemctl is-active cups
# 查看调度器、打印机、任务总体状态
lpstat -t
# 查看打印队列连接到哪个设备 URI
lpstat -v
# 查看默认打印目标
lpstat -d
参数解释:
| 命令 | 含义 |
|---|---|
systemctl is-active cups |
查询名为 cups 的服务是否处于 active 状态 |
lpstat -t |
显示打印系统总体状态 |
lpstat -v |
显示队列与设备 URI 的对应关系 |
lpstat -d |
显示默认打印目标 |
若出现任务停滞,可看日志:
sudo tail -n 80 /var/log/cups/error_log
如果文件为空或该发行版改用 systemd journal:
journalctl -u cups -n 80 --no-pager
现场曾发现的关键报错是:
Job aborted because the destination printer/class has gone away.
它证明任务目标曾变得不可用。综合当时队列状态,怀疑临时发现队列发生变化;但没有抓取到队列被删除的完整事件链,不能写成已证实的唯一根因。
另有一次日志涉及一个与本打印机无直接对应关系的驱动信息文件报错;因为缺少因果证据,未将其判断为本次故障根因。
3.2 核实主机名、网络和端口
以下均使用虚构主机名:
# 系统当前能够把主机名解析到什么地址?
getent hosts printer-demo.local
# 发送四次 ICMP 探测
ping -c 4 printer-demo.local
# 测试 TCP 443 是否可建立连接(仅当设备实际使用 443 时)
timeout 3 bash -c ': > /dev/tcp/printer-demo.local/443'
echo $?
getent hosts:通过系统名称服务查询主机地址。ping -c 4:发送四次探测;某些设备禁用 ICMP,失败不能直接认定设备离线。timeout 3:最多等待 3 秒。bash -c:让 Bash 解释一段命令。/dev/tcp/主机/端口:Bash 的 TCP 网络重定向;并非磁盘上的普通设备文件。echo $?:查看上一条命令退出码,0通常代表本次连接尝试成功。
注意:TCP 可以连接,仅证明最基础的连接层可达,不保证 TLS 握手、IPP 功能查询、任务提交和真实出纸都正常。
3.3 查看系统发现了哪些网络设备
lpinfo -v
如果 CUPS 支持按后端筛选,可进一步查询:
lpinfo --include-schemes dnssd -v
系统可能显示 dnssd://... 或 driverless:ipp://... 等发现结果。发现 URI 和实际配置到队列里的设备 URI 不一定相同。OpenPrinting 的网络打印文档给出了类似例子。9
3.4 手动创建固定队列
先核对真实设备的 URI,再创建队列。下面的 printer-demo.local 是教学占位符,请勿直接复制用于生产环境。
sudo lpadmin -p Office_Printer -E \
-v 'ipps://printer-demo.local:443/ipp/print' \
-m everywhere
| 命令部分 | 作用 |
|---|---|
sudo |
管理员权限 |
lpadmin |
配置 CUPS 打印机/队列 |
-p Office_Printer |
选择新建或修改的队列名称 |
-E |
此处用于启用队列并允许接收任务 |
-v 'ipps://…' |
将队列绑定到指定网络打印服务 URI |
-m everywhere |
使用 IPP Everywhere 免驱配置,向设备查询能力 |
容易混淆的地方: lpadmin 的 -E 如果置于 -d、-p、-x 之前,文档定义其含义为强制与 CUPS 调度器加密通信;本例放在 -p 后,表示启用队列并接受任务。10
创建后检查:
lpstat -p Office_Printer
lpstat -v Office_Printer
如果由于证书、TLS、IPP 属性或设备兼容性失败,应根据报错继续排查,不要反复创建队列,也不要随意绕过证书校验。固定队列不是对所有设备都万能。
3.5 发送测试任务、处理堵塞任务
# 发送一段简单文本
printf 'CUPS test\n' | lp -d Office_Printer
# 查看后续状态
lpstat -t
printf 输出文本,| 将其传给 lp,-d 指定目标队列。CUPS 接收后会返回任务编号。若显示“0 个文件”,对于标准输入/管道提交并不必然代表打印内容为空。11
如果旧任务阻塞队列,可先确认该任务无需继续打印,再单独取消:
cancel Office_Printer-123
其中 123 仅为示例编号。不要在不确认后果时批量取消共享打印队列中的所有任务。
4. 明明连通了,为什么打印机还亮红灯?
固定队列能够响应打印后,设备面板提示:
自动进纸盒
纸张设置不匹配
这时应先看打印机实体面板,而不是立即重装驱动。
对照发现,PDF 打印窗口曾选择 Letter,而纸盒装的是 A4。两种纸张不是同一规格:
| 纸张 | 尺寸 |
|---|---|
| A4 | 210 × 297 mm |
| Letter | 约 216 × 279 mm |
需要检查四处:
- 打印机纸盒配置:A4、普通纸(按实际装纸情况决定)。
- WPS 文档页面设置:页面本身是 A4 还是 Letter。
- 本次打印对话框:选择的纸张尺寸是否仍为 Letter。
- CUPS 默认选项:当前队列的
media是否为 A4。
为队列设置服务器端默认 A4:
sudo lpadmin -p Office_Printer -o media-default=A4
仅为某次任务指定 A4:
lp -d Office_Printer -o media=A4 '/path/to/document.pdf'
区别: media-default=A4 是队列默认值;lp -o media=A4 是为这次任务显式指定。应用程序如果发出自己的打印选项,可能覆盖默认值。12
这次纸张报警的直接证据是打印机面板,而不仅是对 PDF 画面的一种猜测。由于未记录每次提交任务的全部 IPP 属性,仍不能断言每一次报警都仅由 Letter 引起;纸张类型与进纸来源也需要保持一致。
5. 为什么旧队列没有“双面打印”,新队列却有?
本机使用的打印机型号在厂商资料中明确列有自动双面打印能力。13 因此,“软件里看不到双面”不等于打印机硬件不支持。
不同队列对同一台物理设备提供给应用程序的能力信息和默认选项可能不同。使用 IPP Everywhere 创建固定队列后,PDF 软件出现了“双面打印 / 长边翻转 / 短边翻转”选项。这说明应用程序获取到的功能集合有所变化,但不能仅凭现象确定旧队列在哪一步丢失了双面能力信息。
检查当前队列可用选项:
lpoptions -p Office_Printer -l | grep -Ei 'sides|duplex'
常见值:
| 选项 | 含义 | 常见用法 |
|---|---|---|
one-sided |
单面 | 默认单面或只打印正面 |
two-sided-long-edge |
双面长边翻转 | 纵向 A4,像书本一样左右翻页 |
two-sided-short-edge |
双面短边翻转 | 横向 A4,希望像书本一样左右翻页时常用 |
仅对本次任务指定双面:
lp -d Office_Printer \
-o media=A4 \
-o sides=two-sided-long-edge \
'/path/to/document.pdf'
建议第一次使用时打印两页非敏感测试文档,确认反面方向正确。注意“长边/短边”是相对纸张装订边的选择,不是对所有横向文档都有唯一正确答案。12
6. 为什么系统明明设置了双面,WPS 仍然显示单面?
Linux 打印至少需要区分三层默认值:
【服务器/队列默认值】 lpadmin 设定
↓ 可能被覆盖
【当前用户的打印偏好】 lpoptions 设定
↓ 可能被覆盖
【本次应用程序任务】 WPS/PDF 打印对话框或 lp -o
↓
实际任务属性
更精确地说,这是一种理解默认值与显式选项优先关系的概念模型;不同程序的打印框架和配置读取方式并不完全相同。111214
6.1 设置系统/队列默认项
# CUPS 服务器默认打印目标
sudo lpadmin -d Office_Printer
# 队列服务器端默认 A4
sudo lpadmin -p Office_Printer -o media-default=A4
# 队列服务器端默认双面长边翻转
sudo lpadmin -p Office_Printer -o sides-default=two-sided-long-edge
6.2 设置当前用户偏好
# 当前用户默认队列
lpoptions -d Office_Printer
# 当前用户对该队列的默认选项
lpoptions -p Office_Printer \
-o media=A4 \
-o sides=two-sided-long-edge
lpoptions 不使用 sudo 时,通常保存在当前用户的 ~/.cups/lpoptions;而通过 sudo lpadmin 管理的是 CUPS 服务器上的队列默认设置。1014
我们曾遇到一种情况:执行服务器端双面设置后,查询当前选项仍显示:
sides=one-sided
这种现象表明当前看到的选项与预期不一致,但仅凭这一行不能判定覆盖到底发生在用户偏好、应用程序、队列配置还是能力报告的哪一层。因此需要逐层检查,而不能说“原因已经百分之百确定”。
6.3 验证当前设置
lpstat -d
lpoptions -p Office_Printer \
| tr ' ' '\n' \
| grep -E '^(media|sides)='
期望包含:
media=A4
sides=two-sided-long-edge
如果某些 WPS 版本仍选择旧打印机,先完整退出 WPS,再重新打开并手动选择正确队列。应用程序可能保存上次使用的设备或本次文档的打印偏好。lpstat -d 正确,也不保证 WPS 一定立即改变当前窗口的选择。
顺便一提,CUPS 的 lp 命令选择默认目标时,环境变量 LPDEST、PRINTER 也可能优先于 lpoptions 和服务器默认值;需要时可查看:
printf 'LPDEST=%s\nPRINTER=%s\n' "$LPDEST" "$PRINTER"
这只是打印目标选择的一部分,不应把它直接等同为 WPS 必须遵守的优先顺序。11
7. 进一步诊断:直接查看 IPP 返回了什么(可选)
如果熟悉命令行,并且系统安装了 ipptool,可以向已授权的办公打印机发送属性查询:
ipptool -tv \
'ipps://printer-demo.local:443/ipp/print' \
get-printer-attributes.test
可以重点查看输出中的 printer-state-reasons、media-supported、sides-supported、document-format-supported 等。ipptool 不是所有银河麒麟安装都预装;并且设备可能需要认证或因 TLS 配置拒绝请求。15
安全提醒: 这个查询可能包含网络地址、设备 UUID、序列号、队列 URI、认证信息等敏感数据,不能把完整原始输出未经检查直接贴到公开博客。
CUPS 管理网页(如果发行版启用)通常为:
http://localhost:631
它适合查看本地队列、任务及部分默认选项,但不同系统可能未开启网页管理功能。不要为排障随意将 CUPS 管理端口开放到公网。2
8. 命令速查表
| 命令 | 用途 | 是否修改配置 |
|---|---|---|
systemctl is-active cups |
检查 CUPS 是否运行 | 否 |
lpstat -t |
查看总体状态和任务 | 否 |
lpstat -v |
查看队列对应设备 URI | 否 |
lpstat -d |
查看默认打印目标 | 否 |
lpinfo -v |
查看可发现的设备 URI | 否 |
getent hosts 主机名 |
名称解析 | 否 |
ping -c 4 主机名 |
ICMP 连通测试 | 否 |
lpoptions -p 队列 -l |
查看队列可用选项 | 否 |
sudo lpadmin -p ... -E -v ... -m everywhere |
新建/配置固定队列 | 是 |
sudo lpadmin -d 队列 |
设置服务器默认队列 | 是 |
sudo lpadmin -p 队列 -o media-default=A4 |
服务器默认 A4 | 是 |
sudo lpadmin -p 队列 -o sides-default=two-sided-long-edge |
服务器默认双面 | 是 |
lpoptions -d 队列 |
当前用户默认队列 | 是(用户级) |
lpoptions -p 队列 -o ... |
当前用户保存打印选项 | 是(用户级) |
lp -d 队列 -o media=A4 文件 |
提交一次 A4 打印任务 | 会产生打印任务 |
cancel 队列-任务编号 |
取消指定任务 | 是(任务级) |
9. 本次故障最终说明
可以确认的结果:
- CUPS 服务正常,网络与目标端口测试通过。
- 原先出现过目标队列不可用的任务日志;后续建立了固定队列,并已完成普通打印测试。
- 打印机亮红灯时,设备端明确报告“纸张设置不匹配”;PDF 打印界面曾出现 Letter,而实际办公用纸为 A4。
- 选择新创建的 IPP Everywhere 队列后,打印对话框开始出现双面选项。
- 后续分别设置了服务器端默认打印机、A4 和双面;用户级选项也需单独检查。
尚不应宣称已被证明的内容:
- 临时队列究竟由哪个服务在何时删除。
- 每次纸张报警是否都只由 Letter/A4 尺寸差引起。
- 所有 WPS 版本都会完全遵守 CUPS 默认选项。
- 所有双面模式、所有 PDF 类型都已经过实际出纸验证。
最终的思路不是“重装驱动试试”,而是沿着以下链路逐层验证:
设备发现 → 主机名解析 → 网络连通 → 队列存在性
→ CUPS 任务调度 → 格式转换与 IPP 传输
→ 打印机校验纸张与双面属性 → 实际出纸
逐层验证,并结合电脑日志与打印机面板进行双向定位。
10. 参考资料与延伸阅读
以下优先使用 CUPS/OpenPrinting 官方文档、IETF 标准和厂商官方资料。它们用于解释通用机制;具体机型、系统版本的表现仍应以实际测试为准。
- OpenPrinting — Driverless Printing:免驱打印标准、DNS-SD 发现、
Get-Printer-Attributes、格式转换与任务流程。
查看官方原文 - CUPS — Overview of CUPS:打印队列、任务编号和打印链路概览。
查看官方原文 - IETF RFC 8011 — Internet Printing Protocol/1.1: Model and Semantics:IPP 的打印机、任务、属性、状态与请求语义。
查看官方原文 - IETF RFC 6762 — Multicast DNS:
.local名称及 mDNS 机制。
查看官方原文 - IETF RFC 6763 — DNS-Based Service Discovery:服务发现所用的 PTR、SRV、TXT 记录。
查看官方原文 - CUPS — CUPS Design Description:CUPS 调度器、spool、filters、backends 及内部结构。
查看官方原文 - OpenPrinting CUPS — CUPS Implementation of IPP:CUPS 临时本地打印队列的实现说明。
查看官方原文 - CUPS — Filter and Backend Programming:过滤器和后端的分工。
查看官方原文 - OpenPrinting CUPS — Using Network Printers:网络打印机发现、IPP/IPPS URI、端口及连接方式。
查看官方原文 - CUPS —
lpadmin(8):队列创建、-m everywhere、-E和服务器默认值。
查看官方原文 - CUPS —
lp(1):打印任务提交与默认打印目标的选择规则。
查看官方原文 - CUPS — Command-Line Printing and Options:
media=A4、sides=two-sided-long-edge等参数。
查看官方原文 - 奔图官方 — M7100DN 产品资料:机型的打印语言与自动双面规格。
查看官方原文 - CUPS —
lpoptions(1):用户级打印首选项和~/.cups/lpoptions。
查看官方原文 - CUPS —
ipptool(1):通过 IPP 查询设备属性和进行协议测试。
查看官方原文
勘误与版本提示: 本文展示的
lpadmin、lpoptions和lp示例基于传统 CUPS 的通用接口;不同 Linux 发行版及新版 CUPS/OpenPrinting 的架构正持续演进,部分命令或 PPD 相关实现未来可能变化。操作前请查看本机man lpadmin、man lpoptions与对应系统文档。
浙公网安备 33010602011771号