Lodop 全家族排障总纲:常见报错一张表查完
后台问的 Lodop 问题,散在十几篇里,互相不通。这篇做个入口:先分清你装的是哪套,再对着表查。
说明:本文只讨论技术现象与排查顺序,不评价厂商策略。授权、版本、下载一律以厂商官方说明为准。
先分清三样东西
很多人卡在这一步,装错了套,怎么修都不对。
| 叫法 | 是什么 | 跑在哪 |
|---|---|---|
| Lodop 控件(老式) | 浏览器插件/控件 | 只有 IE 内核能加载 |
| C-Lodop | 本机常驻服务 | 本机起一个 HTTP 服务,页面去连 |
| LodopFuncs.js | 页面里的引导脚本 | 负责判断该走哪条通道 |
现象:Chrome 里提示「未安装」,装了三遍还在。 八成是装了控件那套------新浏览器根本不加载控件,装一百遍也没用。
一张表查完
| 现象 | 大概率原因 | 先查什么 |
|---|---|---|
| 提示未安装 / 请升级 | 装错套;或引导脚本版本太旧 | 浏览器内核是 Chromium 还是 IE |
| 提示未准备好 / WebSocket 没准备好 | 本机服务没起来 | 托盘进程在不在 |
| 安装成功、已启动,但不打印 | 服务起了,页面连的不是它 | 端口是否与脚本一致 |
| 端口被占 / 开机不自启 | 多套打印程序抢端口 | 门店配置里的端口 |
| HTTPS 页面调不动 | 混合内容被拦 | 控制台是拦截还是重置 |
| 打印机名无效 | 名字与系统列表不一致 | 系统里的真实名称(含「副本 1」) |
| 点了完全没反应 | 脚本加载失败 / 时机太早 | Network 里 LodopFuncs 有没有 404 |
| 换台电脑就好 | 那台机器环境不同 | 位数、内核、安全软件 |
| 浏览器升级后集体挂 | 内核策略变化 | 是否还在用控件通道 |
| 打印出来偏移 | 纸张/边距/缩放设置 | 驱动纸张名与版心 |
更细的单点排查,按报错原文去搜对应那篇。
排查顺序,别跳步
- 确认内核:Chrome / Edge / 360 极速 = Chromium,控件类方案在这类内核上不适用
- 确认进程:本机服务在不在托盘、是不是当前用户启动(换班登录常常就没了)
- 确认端口:页面脚本里写的端口,和服务实际监听的是不是同一个
- 确认脚本:引导脚本是不是发行包里的版本,别用项目里三年前的拷贝
- 确认打印机名:从系统列表抄,不要手打
- 最后才看纸张与版式
这五步能解决绝大多数「装了没反应」。跳过前四步直接调样式,方向就错了。
什么情况下该考虑换通道
这里不劝退,只给判断条件。下面几条同时成立,说明维护成本开始不划算:
- 页面已经迁到 Vue/React 等现代框架,每次升级都要重新适配脚本加载
- 站点上了 HTTPS,本机通道要反复处理混合内容
- 业务要上国产桌面系统,而现有方案在目标系统上没有对应版本
- 新模块的开发同学完全不熟悉这套 API,每次都要找人
一条两条不算问题,四条都中才值得评估。
如果决定评估别的通道
最小验证成本其实很低:不动存量,先跑通一张纸。
js
import webPrintPdf from 'web-print-pdf'
// 工位装配套客户端后,先预览,确认版式再改 print
await webPrintPdf.printHtml(
'<h1>出库单</h1><p>单号 SO-1029</p>',
{ paperFormat: 'A4', printBackground: true },
{ printerName: 'HP LaserJet Pro' },
{ action: 'preview' }
)
老票继续用原来的方式跑,新模块用新通道,两台客户端可以同时装在一台机器上,用票种分开。并行,不是替换------这是风险最低的走法。
最后
Lodop 这类方案在国内存量很大,排障资料也多。遇到问题,先看厂商官方 FAQ,再搜报错原文,比在群里问快得多。
这篇文章的作用是帮你少绕两步:先分清装的是哪套,再按顺序查。