pong,即代表全部就绪。| 项目 | 要求 |
|---|---|
| 操作系统 | Windows(打印服务一键安装脚本 install.bat 仅支持 Windows;扩展加载本身在 macOS 也可进行,静默打印宿主需按项目内 opera-rc-printer 方案单独配置,见 13.3) |
| Chrome 版本 | 88 或更高(本扩展为 Manifest V3,必须 Chrome 88+;推荐最新稳定版) |
| 扩展文件夹 | 已拿到完整的 OC-Helper 文件夹,且能看到 manifest.json |
| 权限 | 不需要管理员权限(打印宿主注册到当前用户,不写系统目录) |
D:\Tools\OC-Helper 这样的固定目录。
OC-Helper/ ├── manifest.json ← 扩展的"身份证",必须有 ├── background.js ← 后台脚本 ├── popup.html / popup.js ← 点扩展图标弹出的界面 ├── print.html / print.js ← 打印页面 ├── pdfview.html / pdfview.js ├── welcome.html / welcome.js ├── relogin-fix.js / ql-common.js / gate-common.js / quicklaunch.js ├── license.js ├── print_host.ps1 ← 本机打印宿主脚本(Windows) ├── run_host.bat ← 宿主启动入口 ├── install.bat ← 一键注册打印服务(Windows) ├── install_registry.bat ← 注册脚本(可带参数) ├── com.hksft.opera.printer.json ← 宿主清单文件 ├── SumatraPDF.exe ← PDF 阅读器(完全静默打印依赖它) ├── EULA.txt ├── 安装说明.txt ├── icons/ ← 图标目录 └── lib/ ← 依赖库(pdf.js、二维码等)
| 现象 | 原因 | 解决办法 |
|---|---|---|
文件夹里只有一两个文件,或找不到 manifest.json | 压缩包没有真正解压,或只复制了部分文件 | 重新完整解压整个压缩包后再检查 |
| 文件数量明显偏少 | 解压不完整,或被杀毒软件/清理工具删除 | 临时关闭杀毒软件实时防护后重新解压,或换个目录解压 |
manifest.json、install.bat、SumatraPDF.exe 等关键文件齐备。| 步骤 | 做什么 | 是否必做 | 预计耗时 |
|---|---|---|---|
| 1–2 | 打开扩展管理页面、开开发者模式 | 必做 | 1 分钟 |
| 3–4 | 加载已解压的扩展程序 | 必做 | 1 分钟 |
| 5 | 固定扩展到工具栏 | 推荐 | 10 秒 |
| 6 | 安装本机打印服务 | Windows 必做(否则无法静默打印) | 1 分钟 |
| 7 | 完全重启浏览器 | 必做 | 30 秒 |
| 8 | 验证(pong) | 必做 | 30 秒 |
chrome://extensions,按回车。备选路径(效果相同):点 Chrome 右上角 ⋮ →「扩展程序」→「管理扩展程序」。
chrome://extensions 是 Chrome 内部页面地址,必须带 chrome:// 前缀;输成 extensions 会被当成搜索。| 现象 | 原因 | 解决办法 |
|---|---|---|
| 地址栏输入后跳到搜索结果页 | 前缀不完整 | 重新完整输入 chrome://extensions 再回车 |
| 页面提示「由贵单位的管理员控制」 | 企业策略限制了扩展管理页 | 联系公司 IT 管理员;可在 chrome://policy 查看当前策略 |
| 页面空白或打不开 | Chrome 版本过旧或配置异常 | 升级到最新稳定版;仍异常可开无痕窗口排查扩展冲突 |
chrome://extensions 打开的扩展管理页面,右上角可看到「开发者模式」开关。| 现象 | 原因 | 解决办法 |
|---|---|---|
| 找不到「开发者模式」开关 | 位置在扩展管理页右上角,不在浏览器设置里 | 回到 chrome://extensions,看页面最上方工具栏右侧 |
| 开关灰色拨不动 | 企业策略禁用了开发者模式 | 联系 IT 管理员;个人电脑检查是否装有管控类软件 |
| 开启了但没出现三个按钮 | 页面未刷新 | 按 F5 刷新扩展管理页面 |
加载成功的标志:
mnaldapfhbfdaggginbioclmfhgidije(本扩展清单内置密钥,解包加载时 ID 也是固定的,不随文件夹位置变化);mnaldapfhbfdaggginbioclmfhgidije):第 7 步安装打印服务时要核对,确保注册的扩展 ID 与卡片上显示的一致。
manifest.json 的那一层」。选成了子目录(如 icons/、lib/)或上级目录,Chrome 会报「清单文件缺失或不可读」。拿不准就退回上一级重新选。hrsopera.cn 等站点访问权)在加载时自动授予,不会弹额外确认框。| 现象 | 原因 | 解决办法 |
|---|---|---|
| 报错「清单文件缺失或不可读」 | 选错目录层级;压缩包未解压;文件不完整 | 退回到包含 manifest.json 的那一层重新选;重新完整解压 |
| 卡片上出现红色的「错误」按钮 | 扩展文件缺失或代码异常 | 点「错误」查看具体信息;常见是文件没复制全,补齐后点「重新加载」 |
| 卡片灰色 / 显示「已停用」 | 被手动停用或策略停用 | 点卡片上的开关重新启用 |
| 点「加载」后没有任何反应 | 选中的不是文件夹,或对话框被其他窗口挡住 | 重新点击按钮,注意对话框弹出位置 |
| 重启浏览器后扩展消失了 | 文件夹被移动/删除/清理工具清掉 | 把文件夹放回固定位置,重新按本教程加载;日常不要清理该目录 |
chrome://extensions 确认扩展已加载且处于启用状态。| 现象 | 原因 | 解决办法 |
|---|---|---|
| 拼图菜单里没有 OC Helper | 扩展未加载成功或被停用 | 回扩展管理页面确认卡片状态 |
| 固定后图标变灰 | 扩展被停用 | 在扩展管理页面重新启用 |
install.bat 的作用就是把它一键注册好,Chrome 和 Edge 会同时注册,不需要管理员权限。
install.bat。com.hksft.opera.printer.json(宿主清单)写入当前用户注册表的 Chrome 和 Edge 两个位置。Install finished. 即注册成功,按任意键关闭窗口。mnaldapfhbfdaggginbioclmfhgidije。回到 chrome://extensions 卡片上核对实际 ID:
cmd 回车打开命令提示符,执行 install_registry.bat <卡片上显示的实际ID>。SumatraPDF.exe 与 print_host.ps1 在同一目录,完全静默打印依赖它。| 现象 | 原因 | 解决办法 |
|---|---|---|
双击 install.bat 没反应或一闪而过 | 被杀毒软件拦截,或脚本找不到同目录文件 | 右键 install.bat →「编辑」确认能打开;手动执行 install_registry.bat 并观察输出 |
提示 ERROR: invalid extension ID | 传给注册脚本的 ID 格式不对 | ID 必须是 32 位小写字母(a–p),从 chrome://extensions 卡片上完整复制 |
| 注册成功但打印测试不通过 | 多数是没完全重启浏览器,或 ID 不匹配 | 见第 8 步和第 11 节总表 |
install.bat 后的注册窗口,出现 Install finished. 即注册成功,按任意键关闭。Google Chrome 进程);macOS 用 Cmd+Q。| 现象 | 原因 | 解决办法 |
|---|---|---|
| 打印测试始终不通过,但前面步骤都做了 | 浏览器没有真正完全重启 | 任务管理器结束全部 Chrome 进程后再启动 |
| 重启后弹出一堆之前打开的标签页 | Chrome 的「启动时继续」设置 | 属正常现象,与安装无关 |
Test native print host)。pong —— 表示扩展、本机打印服务全部就绪,安装完成。hrsopera.cn)进入报表页,点 Process,勾选的报表类型直接静默打印,其余报表在新标签页打开预览。pong(无响应、报错、显示别的字样)→ 按第 11 节逐项排查,90% 的情况是「没完全重启浏览器」或「扩展 ID 与注册的不一致」。
pong 即全部就绪,安装完成。适合电脑上已经装有旧版 OC Helper 的同事:
chrome://extensions,在「OC Helper」卡片上点击「重新加载」。install.bat,然后完全重启浏览器。pong。| # | 现象 | 最可能的原因 | 解决办法 |
|---|---|---|---|
| 1 | 加载时提示「清单文件缺失或不可读」 | 选错目录层级 / 压缩包未解压 / 文件不全 | 选到直接包含 manifest.json 的那一层;重新完整解压 |
| 2 | 看不到「加载已解压的扩展程序」按钮 | 没开「开发者模式」 | chrome://extensions 右上角开启开发者模式 |
| 3 | 「开发者模式」开关灰色 | 企业策略限制 | 联系公司 IT;chrome://policy 查看策略 |
| 4 | 扩展卡片出现「错误」按钮 | 扩展文件缺失或代码异常 | 点「错误」看详情,补文件后点「重新加载」 |
| 5 | 重启浏览器后扩展消失 | 文件夹被移动/删除/清理 | 文件夹放固定位置,重新加载;不要放下载目录 |
| 6 | 打印测试无 pong、无反应 | 没跑 install.bat | 双击 OC-Helper 里的 install.bat,完全重启浏览器 |
| 7 | 打印测试报 Access to the specified native messaging host is forbidden | 注册的扩展 ID 与实际加载的 ID 不一致 | 执行 install_registry.bat <chrome://extensions 卡片上的实际ID>,再完全重启浏览器 |
| 8 | 打印测试报 Specified native messaging host not found | 宿主没注册成功,或没完全重启,或文件夹被移动 | 重跑 install.bat;任务管理器结束全部 Chrome 进程再启动;确认文件夹没被移动 |
| 9 | Chrome 每次启动都弹「请停用以开发者模式运行的扩展程序」 | 开发者模式的正常提示 | 点 × 关闭,不影响使用 |
| 10 | install.bat 双击没反应 | 杀毒软件拦截 | 加信任区/临时退出杀软后重试;或手动运行 install_registry.bat |
| 11 | 报表能预览但不能静默打印 | 打印宿主未就绪 / SumatraPDF.exe 缺失 | 确认目录中 SumatraPDF.exe 与 print_host.ps1 同在;重跑安装并重启 |
| 12 | 在 OPERA Cloud 上点了 Process 没反应 | 站点域名不匹配 / 扩展被停用 / 未登录 | 确认地址栏是 hrsopera.cn 域名;回扩展管理页确认已启用 |
| 术语 | 白话解释 |
|---|---|
| Chrome 扩展(Extension) | 安装在浏览器里的小程序,用来增强网页功能。本教程安装的就是一个扩展 |
| 开发者模式 | 扩展管理页的一个开关,开启后才能「加载本地文件」形式的扩展 |
| 加载已解压的扩展程序 | 让 Chrome 直接读取一个普通文件夹里的扩展文件并运行,不需要打包 |
| manifest.json | 扩展的「身份证」,记录名称、版本、权限等信息;没有它就不是一个扩展 |
| 扩展 ID | Chrome 给每个扩展的唯一编号。本扩展内置密钥,ID 固定为 mnaldapfhbfdaggginbioclmfhgidije |
| 本机打印服务(Native Messaging Host) | 装在电脑上的一个小程序,负责把网页里的打印请求送到打印机 |
| 注册表 HKCU | Windows 当前用户自己的配置库,写入它不需要管理员权限 |
| CRX | Chrome 扩展的打包格式(类似安装包)。本教程用的是「文件夹」方式,效果等同 |
chrome://extensions,Edge 是 edge://extensions。install.bat 会同时注册 Chrome 和 Edge 的打印服务,装一次两边都能用。install.bat 仅支持 Windows。macOS 环境如需静默打印,请参考项目内 opera-rc-printer 方案(基于 lp 命令的 NM 宿主)。hrsopera.cn、authing.cn 等域名),可在 chrome://extensions → OC Helper →「详细信息」中随时查看。如在安装过程中遇到本教程未覆盖的问题,请记录:Chrome 版本、扩展卡片截图、install.bat 输出窗口内容,便于进一步排查。