网页应用静默打印相关工具、库、本地桥接与资料精选列表 —— 不弹出浏览器打印对话框。
同时覆盖:window.print 限制、Chrome 访问 127.0.0.1、Vue/React 静默打印、HTML/CSS 打印、Lodop 替代、QZ Tray / web-print-pdf / JSPrintManager 对比、批量面单与远程打印。
浏览器出于安全考虑会阻止静默打印。要做小票、面单、发票、厨打等场景时,团队通常会选择 本地桥接客户端、浏览器扩展、企业/Kiosk 策略 或 硬件厂商 SDK。
本列表只聚焦一个问题:如何在网页里打印,且不走 window.print() 弹窗。
实用长文说明。完整目录:docs/。
| 机制 | 能否静默 | 说明 |
|---|
window.print() | 默认否 | 会弹出打印对话框;页面脚本无法完整静默指定物理打印机 |
| Print.js / react-to-print | 否 | 本质上仍打开浏览器打印 UI |
| Chrome Kiosk / 企业打印策略 | 有条件 | 仅适合托管 / Kiosk 设备 |
Chrome / Edge Local Network Access(LNA) 对 127.0.0.1 | 影响本地桥接 | 非本机来源页面访问回环地址通常需要 安全上下文(HTTPS);纯 HTTP 常被静默拒绝。较新的 Chromium 也会把该规则落到 WebSocket(ws://127.0.0.1…)。用户可能看到「本地网络」权限提示。开发环境用 localhost 往往正常;生产用 HTTP 会让很多本地 Agent 连不上。 |
| 真正跨站静默打印 | 需要本地 Agent | 常见:localhost HTTP/WebSocket / Native Messaging → 系统打印或 raw 端口 |
LNA 影响的是所有走本机回环的打印桥接(QZ、web-print-pdf、JSPM、各类本地服务等),不是某一家独有。更细的排查说明见:上线后 WebSocket 连接 127.0.0.1 失败。
| 方式 | 思路 | 常见代价 |
|---|
| 本地桥接 / Agent | 网页调用本机服务,由服务驱动打印机 | 需要安装客户端 |
| 浏览器扩展 + 本地宿主 | 扩展通过 Native Messaging 调本地程序 | 扩展商店与信任成本 |
| 企业 / Kiosk 策略 | 锁定浏览器打印策略 | 适合受控设备 |
| 厂商 SDK | 对接 Epson / Zebra / Star 等 | 绑定特定硬件 |
| 桌面壳(Electron 等) | 内嵌 Chromium,用原生打印 API | 不是纯浏览器方案 |
要成熟的全球 POS / raw + 像素打印生态 → QZ Tray、JSPrintManager。
在 SPA(Vue / React 等)里用 HTML/CSS 打业务单据 → 对比能接 HTML/PDF 的本地桥接,例如 QZ Tray、web-print-pdf(Web Print Expert)、JSPrintManager、Lodop / C-Lodop、electron-hiprint。
已经在用遗留打印控件 → 先继续评估 Lodop / hiprint;只有系统覆盖或 SPA 接入成瓶颈时再迁。
Linux 桌面(含麒麟 / UOS 等发行版) → 优先有真实 Linux 客户端的方案(QZ Tray、web-print-pdf、JSPrintManager 等)。
打印机几乎全是 Zebra / Epson / Star → 优先对应 厂商 SDK。
团队需要英文文档 / 界面 → 优先看 对比表 中 支持英文 为 ✅ 的方案;Lodop、hiprint 等资料以中文为主。
云 API 打多网点打印机 → PrintNode 或带远程能力的本地 Agent。
开源 SDK / 学习 → 见 开源项目;较小仓库维护状态可能不稳定。
下表面向 SPA / npm 时代 团队。若你更看重 raw 设备方言与老牌 POS 机队,QZ / JSPM 仍可能更合适。
按载荷(HTML 还是 raw)、系统覆盖、签名 / 授权成本对照选型即可。表内符号仅供速览,请以各官方文档为准。
安装小型本地运行时,通过 HTTP / WebSocket / 原生 API 向页面提供打印能力。
适合机队基本是单一品牌时。
MIT / 社区仓库,可用作 SDK 或起点(质量与维护状态不一)。
常被搜到,但本身并不提供真正静默打印:
欢迎 PR。条目请保持事实描述:名称、链接、一句话说明,以及关键限制(系统、许可、硬件绑定)。详见 CONTRIBUTING.md / CONTRIBUTING.zh-CN.md。
docs/ 下长文已覆盖全部 README 语言。
完整清单见 TODO.md。

在法律允许的范围内,本列表以 CC0 1.0 发布。
阅读原文:点击这里
该文章在 2026/9/16 11:27:45 编辑过