﻿远程打印代理 · Windows 版     v1.8.0
==================================================

干什么用的
 司机在客户处用手机开单，办公室这台电脑自动把三联送货单打到针式打印机上。
 晚上司机回来按人取走当天所有单据，PDF 也会按日期归档，方便补打和查证。


一、系统要求
 · 64 位 Windows 10 / 11（不支持 32 位系统）
 · 已安装 Microsoft Edge 或 Google Chrome（系统自带 Edge 即可，用来把单据渲染成 PDF）
 · 针式打印机（三联复写纸），241×140mm 二等分连续纸
 · 不需要自己装 Node.js，包里已经带了


二、安装
 1. 把压缩包解压到任意位置（不要在压缩包里直接双击）
 2. 双击「安装.bat」
 3. 按提示走完：复制到本机 → 建桌面快捷方式 →（可选）开机自启
 4. 程序装到：%LOCALAPPDATA%\Programs\远程打印
    配置与数据在：%LOCALAPPDATA%\远程打印


三、第一次必须配置（3 分钟）
 1. 双击桌面「远程打印」，浏览器会自动打开监控面板
 2. 右上角「设置」：
    · 基本信息：改成本公司抬头；点「随机生成」换访问密钥（这个密钥业务系统调接口时要用）
    · 接单方式：保持默认的「主动拉单」，再到「业务系统（远程打印）」填接口入口地址 + 授权码
    · 打印机：点「检测」从列表里选针式打印机的名字；SumatraPDF 路径可留空（会自动找）
    · 模板与远程资源：如果你要让业务系统下发版式，填域名白名单和模板地址
 3. 先开「演练模式」→ 回监控页点「打印测试页」→ 只生成 PDF 不出纸，打开 PDF 检查版式
 4. 确认没问题后，关掉「演练模式」，再打一张真单，检查三联套打是否对齐


四、纸型怎么设
 推荐在打印机驱动里新建一个自定义纸型（241 × 140 mm），然后在面板里
 把「纸型参数」填成那个纸型的名字，或保持默认的 paper=241x140mm,noscale,portrait。
 套打跑偏通常是驱动里的纸型和实际纸张不一致，先在驱动里对齐，再调面板。


五、业务系统怎么接
 默认方式：主动拉单。在面板「设置 → 业务系统」里填接口入口地址 + 授权码，保存即可；
 代理会自动自检、绑定本机，然后每 10 秒去业务系统取一次待打印单据，打完把结果回写过去。
 （业务系统在公网/云上时，只有这一种方式能走通——它没有路由能连进办公室电脑。）

 只有当业务系统就装在同一个内网（比如 ERP 在本公司机房）时，才可以选「局域网直连」：
 对方调 POST http://<这台电脑IP>:8787/api/print，Header 带 x-print-token。
 同一个 orderId 只会打印一次，重复下发不会重复出纸。要补打请在面板任务列表点「重打」。

 打印机状态上报默认开启（跟随业务系统）：代理每 60 秒把打印机状态、队列积压、
 最近一单推给业务系统（POST ?a=print_agent_status），业务端「系统设置 → 远程打印」
 的看板就靠它，打完一单还会补推一次。开箱即有，不用配置；要推自己的监控服务，
 再在面板「设置 → 打印状态上报」里填地址。

 完整字段规范和模板写法见程序目录下的：
   docs\远程打印接入规范-3.2.md     对接文档（同目录有 .docx，可直接发给对方开发）
   docs\业务系统对接.md             接口速查与排错
   docs\接入方案.md                 部署与接入方案
   docs\模板对接指南.md             模板语法与字段


六、防火墙
 · 用默认的「主动拉单」：完全不用改防火墙，办公室电脑主动往外连
 · 只有要让内网其它机器调用本机接口（局域网直连）时，才需要放行 8787 入站，用管理员身份执行
     netsh advfirewall firewall add rule name="远程打印" dir=in action=allow protocol=TCP localport=8787
   （或者只允许业务系统的 IP 访问这个端口，更安全）


七、日常使用
 · 开机自启：装的时候就问过；也可以随时把桌面快捷方式复制到
   %APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup
 · 停止代理：双击「停止.bat」，或直接关掉那个黑色窗口
 · 看状态：http://localhost:8787/
 · 断电/重启：没打完的单子会在下次启动时自动重新排队，不会丢


八、卸载
 双击程序目录里的「卸载.bat」，会删快捷方式，并问你要不要保留历史单据。
 也可以在「设置 → 应用」里没有条目——本程序是绿色版，走「卸载.bat」。


九、常见问题
 · 双击没反应 / 闪一下就没了
   右键「启动.bat」→ 编辑，看是不是杀毒软件拦了 runtime\node.exe，
   把这个目录加进白名单即可。
 · 提示找不到 SumatraPDF
   重跑一次「安装.bat」让它重新下载，或手动下载绿色版，把 SumatraPDF.exe
   放到 %LOCALAPPDATA%\Programs\远程打印\SumatraPDF\
 · 出纸但内容错位
   先在面板用「演练模式」生成 PDF 看版式对不对，再查打印机驱动的纸型设置。
 · 面板打不开
   8787 端口被占了，面板「设置 → 服务端口」换一个（需重启），
   或者关掉占用该端口的程序。
