web 如何打印小票

2017-10-26 12:55:39 +08:00
 110male

网页应用,如何打印小票? window.print 总是弹出打印对话框 ,我想不弹直接打印,使用默认打印机。

不要推荐收费的,用不起,最好是免费的方案

4267 次点击
所在节点    问与答
9 条回复
gamexg
2017-10-26 13:14:47 +08:00
没做过,但是你除非上插件,不然浏览器为了安全不会允许无提示直接打印。
安装控件还不如打印时弹个提示对用户体验好。
timothyye
2017-10-26 13:41:36 +08:00
我们之前做过一个实现 web 打印小票的功能,提供一下思路:

其实还是给客户端装了个 agent 软件,这个 agent 软件,提供 REST API,这个客户端程序可以通过机器 USB 连接的小票打印机打印小票。
然后 web 里面,js 直接 POST JSON 给 agent 软件,发送要打印的数据,需要解决跨域的限制。
shoaly
2017-10-26 13:45:41 +08:00
买那种支持网线连接的小票机
然后通讯可以直接通过 js 的 websocket.
通讯协议都是 ESC/POS 打印命令集的字节数组
timothyye
2017-10-26 14:13:23 +08:00
还有一种,买支持云端推送的小票打印机,调他们的 API 就行了
小票打印机 wifi 联网
binsys
2017-10-26 15:57:43 +08:00
1. 最好的方案是买支持云端 API 的小票打印机,比如易联云,但要花硬件成本。
2. 客户端安装 agent,chrome 浏览器使用 Chrome Native Messaging 技术把消息给 agent (还要开发 chrome 插件并发布到 google play,成本也不小)
3. IE 之类的直接 ActiveX,有个签名问题,也不便宜。
综合起来买个云打印机最便宜了。

如果你必须利用现有 USB 打印机,那么只能开发 agent,用 IE 的 ActiveX 和 chrome 的 native message,技术成本不小。

如果必须利用或者有蓝牙打印机(或局域网打印机),也可以开发手机 APP 链接蓝牙打印机,打印数据发给服务器 API,服务器通知手机有打印任务,手机把数据发给蓝牙打印机。
110male
2017-10-26 20:21:43 +08:00
总之一句话,就是要客户端或者 ActiveX.
没有现成的免费的可以用的?
letitbesqzr
2017-10-26 22:11:47 +08:00
lodop。。一两百元永久,真用不起?
binsys
2017-10-27 23:10:01 +08:00
@letitbesqzr 可能对此问题不太适用
打印小票一般都是热敏,热敏打印机一般都是指令集方式,打印方式一般是 RAW.
letitbesqzr
2017-10-27 23:39:48 +08:00
@binsys 啊? 应该支持吧,我们用 lodop 做过打印小票 发票 也用过热敏的,没问题啊

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/400916

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX