- 原生的打印raw其实就是ESC或者TPL还有激光打印机的EPL(也就是说windows打印发送的RAW就是这些) RAW命令的意思就是说,windows会给打印机发送一些打印机自己能够识别的命令,比如ZPL包括一些可读的字符,而其他的比如ESC和POS可能包括不可打印的字符,比如【ESC】字符,这个字符是ASCII里面的不可打印的字符。
关于ASCII不可打印字符
- 所以说windows打印指令会给打印机发送最终的raw命令,比如打印txt和png图片,最终还是raw,包括激光打印机,只是激光打印机raw命令跟ESC不一样而已,叫做PCL。
- windows除了raw意外还有emf,什么emf?
- node如何查看windows/mac/linux支持的打印格式?
- 除了调用原生的raw打印命令外,如何实现web端打印?
A. 安装client,用websocket调用client(封装包)打印,如JSPrintmanager
a. 不用JSPrintManager,自己用electron做一个打印服务,然后模仿其,在客户端调用
B. web端调用window.print()浏览器弹窗,用户选择打印机比如Zebra条码打印机,然后打印网页 注意:如果网页有格式和css等,则效果不好,需要用 npm install react-to-print --save-dev 这个包去除格式,自己编辑格式
b. 如果是electron则类似于网页,也可以调用react-to-print打印,当然也可以用eletron自带的print,其实就是window print
C. windows.print是个不错的方案,不用安装第三方,原生的打印,方便在客户电脑安装。但是直接打印web content(用react-to-print去格式)格式不一定会固定(不同电脑),因此可以考虑打印图片或者pdf,如果是pdf的话,用(npm i react-pdf) 渲染pdf后打印。
D. 调用封装包,比如ddl和exe直接原生打印。
E. 还有懒人的云打印。
总之方法很多,各有利弊。
web直接打印的好处是:
-不用调节排版。所见即所得(wiswig: what you see is what you get)!
-几乎不用安装什么第三方
-客户有手,会点击打印按钮即可
坏处是:
-如果不是web环境则不行
原生打印的好处是:
-速度快
-原生的命令支持,比如开钱柜,beep响声等特殊功能
坏处是:
-需要第三方依赖
-排版是个恶心事情