Chrome-kiosk-printing能上生产吗

--kiosk-printing 能不能上生产?先数一下这台机器插了几台打印机

上个月那篇里我留了一句:「专用设备、镜像统一、机器就跑你们一个系统------可以研究 kiosk。」后台陆陆续续有人问怎么配、配了还是弹框怎么办。

这篇说透,顺便说清什么时候别碰。

它到底干了啥

Chromium 的一个命令行开关。加了之后,页面里 window.print() 不弹预览,直接送系统默认打印机,用默认纸、默认方向、默认份数。

注意这半句:送出去就不管了。没有任务号,没有「打了几页」,onafterprint 在静默模式下几乎立刻触发------纸出没出来,它不知道。

所以它解决的只是「不要弹窗」,不是「打印」这件事在业务系统里要的那一整套。

怎么配

Windows 改快捷方式(用户必须从这个快捷方式进):

复制代码
chrome.exe --kiosk-printing --kiosk https://your-app/print

Edge 一样,换成 msedge.exe。macOS 用 open -a "Google Chrome" --args --kiosk-printing。Linux 写 .desktop,Exec 行带参数,麒麟/UOS 上先 which chromium 确认二进制名。

域环境里一般用组策略推,别让 IT 一台台改。但这里有个容易被忽略的冲突:「强制使用系统默认打印机」「禁用打印预览」这类策略会覆盖命令行行为,同一批机器策略不一样,表现就不一样。验证必须在目标机上做,别拿开发机下结论。

六个上不了生产的理由

# 边界 真实表现
1 只能打默认打印机 用户把默认改成「另存为 PDF」,面单就存成文件了
2 没有回执 重复点击=重复出纸,财务没法对账
3 不能指定纸张和份数 100×150 面单只能靠改系统设置
4 多标签打架 同时触发的 print 互相顶掉,批量打印缺单
5 依赖启动方式 用户自己点桌面图标打开,参数就没了
6 版本行为会变 浏览器自动升级后整批失效,没有降级路径

第 6 条最要命。--kiosk-printing 从来不是 Chromium 承诺长期稳定的 API,它是给 kiosk 设备用的启动开关。把核心业务挂在上面,等于挂在实现细节上。

那什么时候它真的够用

四条同时成立:打印机唯一、介质唯一、打错了能重来、没有对账需求。

车间看板、自助机、内部工具打交接单------这些用它零成本,一行参数解决,没必要上客户端。破一条,就该换方案。

换方案长什么样

把「打印」从浏览器里拿出来,交给本机常驻进程:

复制代码
网页 ──WebSocket──> 本机打印服务 ──> 系统打印队列 ──> 打印机

多出四件 kiosk 永远给不了的东西:按任务指定打印机、按任务指定纸张份数、拿到成功/失败/超时的回执、打印前先预览。

前端调用可以很短:

js 复制代码
import webPrintPdf from 'web-print-pdf'

await webPrintPdf.printHtml(html,
  { paperFormat: 'A4', printBackground: true },
  { printerName: 'HP LaserJet Pro', scaleMode: 'shrink' },
  { action: 'print', requestTimeout: 20 }
)

打印机名别写死,getPrinterList() 拿一次让用户选,存本地。

同类方案不止一个:QZ Tray、C-Lodop、JSPrintManager,还有 npm 上的 web-print-pdf。形态都是「本机进程 + 前端 SDK」,差在授权方式、系统覆盖、API 风格。

排障

现象 先查
加了参数还弹预览 Chrome 不是从这个快捷方式启动的,chrome://version 看命令行
打出来是 PDF 文件 默认打印机是「Microsoft Print to PDF」
一张都没出、也没报错 静默没回执,去系统打印队列看是不是卡纸/离线
换台电脑就失效 新机器没配快捷方式,或默认打印机不同

最后

判断要不要用它,只看一个问题:打印错了,会不会产生需要追溯的后果?

不会 → 用它,一行参数。

会 → 老老实实做本地打印代理,让每张纸都有任务号。

选型不是越重越好,是够用加能兜底。

相关推荐
郭小李1 小时前
springmvc 拦截器
java·开发语言·前端
程序员大阳1 小时前
副队长JavaScript教程(60)-BOM 初识:window 对象与浏览器模型
javascript·bom·window对象·浏览器模型
白帽攻防录1 小时前
某pc客户端app从xss到rce实战案例
前端·网络安全·黑客·xss·rce·src漏洞·app漏洞
大风起兮云飞扬丶1 小时前
Java——日期类
java·开发语言
志尊宝1 小时前
AI原生前端开发(041):AI辅助的状态管理(Zustand/Pinia)
前端·javascript·ai-native
Wang's Blog1 小时前
Java 项目实战:交友项目 - 联系人管理需求分析
java·开发语言·交友
修炼的dance1 小时前
pngquant 两档质量后接 oxipng,每步省多少花几秒
前端
费曼学习法1 小时前
无人值守AI内容矩阵实战(10):Windows 无 systemd,进程存活率 99% 怎么做
前端
Geoffwo1 小时前
DSH-SKILL基础
javascript