使用EPSON ePOS SDK连接TM-T70-i公网打印超时失败解决方案咨询
公网部署网页调用本地TM-T70-i打印机的解决方案
该问题本质是公网HTTPS页面出于浏览器安全策略限制,无法直接发起对本地内网IP的非安全请求,且ePOS SDK默认的本地打印机通信端口不支持跨域HTTPS访问。
方案1:调整本地打印机配置支持HTTPS与跨域
- 进入TM-T70-i的web管理后台,开启HTTPS服务,自签或导入SSL证书,确保打印机本身可以通过HTTPS协议响应请求
- 在打印机的跨域配置项中,添加你的公网域名到允许跨域访问的白名单
- 修改前端代码中SDK的初始化配置,将请求协议从
http改为https,适配公网页面的安全策略
方案2:部署本地代理服务中转请求
- 在需要打印的客户端本地运行一个轻量代理服务(可以用Node.js、Python Flask等快速开发),代理服务负责接收公网页面的打印请求,再转发给本地TM-T70-i打印机
- 代理服务同样需要配置HTTPS证书,以及允许你的公网域名跨域访问
- 前端代码改为向本地代理服务的地址发送打印请求,由代理完成和打印机的通信
方案3:改用Web Print服务模式
- 开启TM-T70-i的ePOS Print Web服务功能,配置打印机定期主动拉取公网服务端的打印任务队列
- 公网网页不再直接调用本地打印机,而是将打印任务提交到你的后端服务存储,打印机轮询到新任务后自动执行打印
- 该方案无需调整浏览器端策略,适合多终端共用打印机的场景
方案4:调用浏览器原生打印能力
- 放弃直接调用ePOS SDK的IP直连打印逻辑,将需要打印的内容生成符合TM-T70-i规格的HTML或PDF
- 前端调用
window.print()唤起浏览器原生打印弹窗,用户手动选择本地TM-T70-i打印机完成打印 - 可以通过CSS的
@media print规则调整打印样式,适配小票规格
内容的提问来源于stack exchange,提问作者Blance
相关产品推荐
相关产品推荐

