C-Lodop 提示未准备好或 WebSocket 没准备好:先让本机服务起来

现场最常见的弹窗之一:C-Lodop 未准备好、WebSocket 没准备好。点打印没纸,控制台一串本地连接失败。

这不一定是 Lodop 本身坏了。老项目里 C-Lodop 当本机打印服务用得很广,页面要连上它才能出纸。连不上时,先别改单据坐标。

按这个顺序查

1. 托盘在不在

任务栏右下角服务图标没有,页面怎么 getLodop 都是空的。让操作员点开安装目录里的服务,或从开始菜单启动一次。重启电脑后没自启,第二天全店一起报这个错。

2. 进程在不在

任务管理器里看服务进程。被安全软件隔离、被远程桌面会话带挂,都会变成「未准备好」。

3. 端口有没有人抢

本机同时装了好几个打印服务时,默认端口容易撞。浏览器开发者工具看本地 WebSocket / HTTP 是失败还是超时。失败就去服务设置里核对端口,和页面脚本里写的是否一致。

4. 页面协议对不对

业务站是 HTTPS,本机服务还按 HTTP 提供,浏览器会拦混合内容。同事点掉一次提示,后面就像「没反应」。无痕窗口能复现的话,先处理证书或本机 HTTPS,再查业务代码。

5. 脚本是不是在服务起来之前就调了

Vue 路由一进来就打印,服务还在启动,第一次必失败。按钮点击时再取实例,比 onMounted 里抢跑稳。

以上都通了,Lodop 老单据可以继续打。这套服务能跑的工位,不要为了排障把现场拆掉。

新模块可以并行,不必停掉 C-Lodop

有的票已经是 Vue 拼出来的 HTML,不想再往全局脚本里塞一截。可以另开一条:工位再装一套 npm 客户端,页面用 web-print-pdf 打新票。

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

await webPrintPdf.printHtml(
  html,
  { paperFormat: 'A4', printBackground: true },
  { printerName: '从本机列表抄的名字' },
  { action: 'print' }
)

老套打仍走原来的 C-Lodop。字典里加个打印引擎字段,比「全场二选一」好讲话。

包名搜 web-print-pdf。本文不放链接。

相关推荐
言乐61 小时前
JavaScript概括前端原理
开发语言·前端·javascript·python·ecmascript
2401_868534781 小时前
无源光网络
网络
勇往直前plus1 小时前
HTTPS 详解
网络协议·http·https
回眸&啤酒鸭1 小时前
DeepSeek V4.1 Flash 批量处理实战指南
服务器·前端·javascript
传人1 小时前
网页文字滚动效果如何做
前端·javascript·jquery
福兮说1 小时前
前后端算的 MD5、SHA-256 对不上?编码、换行、BOM、HMAC、JSON 顺序,八个原因逐个实测
前端·javascript·node.js·json·哈希算法
ZealSinger1 小时前
Go1.25 FlightRecorder慢请求截trace
网络·数据库·go
Black蜡笔小新1 小时前
EasyCVR从“人盯人”到“AI盯岗”:可视化大屏+智能告警,岗位管理一屏掌控
网络·安全·easycvr
王霸天2 小时前
Three.js 模型体积优化:Draco/Meshopt 压缩与 DRACOLoader 配置的 4 个步骤
java·前端·javascript