背景介绍
最近公司接了一个景区的项目,好巧不巧的分给我一个打票的功能。
过程
这有什么难的呀?
客户有一个一直在运行的系统,我去看了看,就是做一个网页然后预览,调用系统打印。
我求你当个人吧
客户提了一个需求,点击打印直接打印,不要什么预览确认,还要一定要B-S程序,也就是说只能使用IE的ActiveX调用dll。
这个时候我们的讨论结果是:没问题,框架支持IE,我可以用ActiveX开发。
我可求你当个人吧x2
是的你们没有猜错,现代框架哪还有兼容IE ActiveX的。只能用node在本地跑一个websocket server,于是只能重写了,因为涉及到一些高度的计算方法,要重写还挺麻烦的,我采用了一个取巧的方法:node直接接收指令打印,算法依旧在web端完成。
问题出现了
dll提供的似乎是按照GBK进行的解码,所以打印出来全是乱码,也就是说我们要转换一下编码再发送给打印机。
解决方案
iconv库,可以将已知编码转换为另一种编码,此处将UTF-8转换为GBK