其实之前参考过这篇文章
https://www.printnode.com/en/docs/what-is-raw-printing
但是他们提供的api没有命令式的,只能打文件,现在回头来看,打印机确实可以这么连接,直接安装为raw的方式就可以用程序打印了,并不需要找驱动。
当然,为了简化cups的操作,对普通用户来说,提供一个tsc的驱动在传统的打印机界面上安装会更简单一些。
在cups中添加的raw打印机只能在cups中可见,打印机与扫描仪管理中是看不见的,当然,node-printer中可以调用到这个打印机。
梳理一下基本概念:
标签打印机:重点当然在标签,每次打印一小截,标签一般是固定大小,指令如TSPL
票据打印机:重点当然是票据,按需打印长度,然后撕掉。指令如EOP。
面单打印机:快递单那种,应该是跟标签打印机差不多,只不过更大。
其实对于打印机厂商来说,很多都已经兼容多种指令了,当然不包括得力这种OEM还不提供开发文档的。
要做一个跨平台的连接器,需要满足几个条件:
(1)能够构建跨平台的发布,所以范围就锁定在electron、xamarin这样的方案上,js和c#虽然都熟悉,但最近用的多的还是js,所以优先选electron,但是其实对node不够熟悉,所以造成了上一篇关于buffer类型的困惑。
(2)搞清楚打印机在不同的操作系统如何连接,目前还没尝试usb直驱这种,在mac上还是通过cups来连接,windows上都有相应的驱动,可以不单独讨论。
(3)指令集兼容性,目前只尝试了TSPL这一种,后续还需要其他的ZPL之类的测试一下,还需要在各种指令之间转换,方便原来用某个指令集编写的程序直接对接。
(4)接入方式的兼容性,至少应该支持socket和http。
(5)统一的api,尤其是友好的RestFul模式的api,便于开发对接。