比如我们要打印图片,或者做一些控制,使用ESC/POS指令比较直接。比如有时要进退纸(不满一页) 测试请下载见文末。
它适合LPT无驱动打印,或者USB有驱动打印。
因为ESC非常枯燥难于理解。我读了很久的文档,也无法传入数据。(打印机无响应)
现在有个非常好的方法。
1、用Bus Hound或者其他LPT口监控工具,捕获通讯十六进制。进行分析。比如
ESC * m n1 n2 d1…dk 看起来很简单。但是大部分人都不知道怎么送入图片数据。因为厂家都是给一个自以为是的图示和解释,是看不懂的。
可以对比一个很小的图片。然后对比bmp的数据和捕获的数据进行对比分析。即可搞懂。
- lpt采用filewrite方式可以直接写。
- usb采用printsend发送,记得它的第三个参数的使用。要判断是否为0.
- 每个打印机虽然兼容部分ESC指令,但都是魔改指令。很多不相同的地方。要具体型号具体对待。从网上抄一段代码是不行的。
- 字符串如何连接”\0″的字符(“~h00”)。所以printsend要判断,如果0要用代替字符,如果是代替字符那个值,直接发送。如果是用blob写文件时,控制字符中有\0时要用blob{1} zeroblob 来连接。
最新结果,我已经写出了这个程序,调试并交付了。现对外销售,提供源码。测试下载地址:
http://www.powerbuilder.ltd/soft/ESC_POS_PRINT.rar