真是问到专业对口了。我是我们公司的嵌入式。
我们公司是专门做标签打印机的,给你列如下几种方式。
一般通用的比较小型的打印机可能不太会内置指令集:CPCL/ESC/ZPL/EPL/TSPL 我列出来的是几种常见的指令集。
CPCL 、ZPL 、EPL 都是斑马公司,ESC 指令集是 EPSON 打印机的。这种都是开源的,可以直接去网上找标准的协议。
在你开发自己 demo 前我可以给你推荐一些调试工具去测试这些指令是否健全。
还有一些国产的做的很精美标签机,非常非常小,打印头为半寸的,这种大多都有自己的 app ,这种一般是把需要打印的样张转化为位图传输给打印机。这种如果你想做上位机驱动可能需要和对应打印机公司的 SDK 对接,比如使用他们现成的 SDK 文件。
看你的需求,那种稍微大一点 2 寸 3 寸,或者大四寸,快递行业,大标签行业一般用 CPCL 指令集 ZPL/EPL 。
小票多用 EPSON 的 ESC 指令集 它的原理为边收边打,那种非常小的因为硬件资源有限可能不会内置指令集,当然国外的我不清楚,毕竟我们公司做标签机+耗材,我也调研了不少国内的竞品,比较小的 半寸 一寸 很少有带指令集的,或者有的话也不是很全。主要也是用指令集中的位图指令。
指令集的原理其实是上位机给打印机发送指令,真正生成图像是在打印机这一端,如果是传输位图,则上层就需要绘制好图像。如果你用指令集方式可能对自己生成图像的难度系数较小,如果是传输图像数据可能会涉及一维码/二维码库的调用,以及数据压缩,数据传输超时等等这些因素。
当然这只是我从嵌入式方向给你的一些建议,毕竟我也不做 SDK ,我也不做 APP ,我只负责打印机固件端开发,能提供的建议只有这么多。有任何指令集相关的疑问,也可以私下问我,因为我是专门做打印机指令集开发的。 |