对照POS打印机看看:
下面我们详细看看如何打印条形码:
仔细研读如下,客官您看好咯:
格式1和2表示可以使用两种方式打印条码,假设我们打印条码123456
- 选择格式1,且使用HEX-16进制打印,则需要输入1D 6B 8[表示CODE128即m]1[d1]2...6[d6]00
注意:[]里面为注释,因为没有输入打印字数长度,需要以最后00表示条码结尾,告诉打印机打印结束。当然你也可以采用格式2,则不要输入00因为已经通过n告知打印机字符长度了。
-
或,选择格式2,且使用HEX-16进制打印,则需要输入1D 6B 73[表示CODE128即m]6[表示条码字符数]1[d1]2...6[d6]
-
表格里面的合法字符是什么鬼?其实指的是ASCII里面对应的10进制的字符,比如看合法字符【48-57】是什么呢?看图:原来是字符0-9,不是数字哦,而是字符0-9。说明什么呢?肯定是指的是这个CODE11的条码格式只能支持数字字符呀,wiki搜索看看验证。
知道了格式,那么怎么写原生的打印命令呢?看我慢慢道来: 比如我们要打印条形码,只要计算机理解即可,比如打印“CODE 39”使用CODE39如下:
- 注意如果需要打印变长的条形码,不能选择EAN8什么的,因为长度限制
- 注意CODE39可以是数字和A-Z合法字符
十六进制写法:
\x1b\x40\x1d\x6b\x04\x43\x4f\x44\x45\x20\x33\x39\x00
\x表示HEX,1b=ESC 40=@, 因此=打印机初始化
\x1d\x6b\如表
\x04=04DEC,即CODE39 \x43\x4f\x44\x45\x20\x33\x39\分别是HEX对应的ASCII字符串CODE 39,注意\x20空格也需要哦 \x00表示00
写法1. \x1b\x40\x1d\x6b\x04\x43\x4f\x44\x45\x20\x33\x39\x00
\x表示HEX,1b=ESC 40=@, 因此=打印机初始化
\x1d\x6b\如表
\x04=04DEC,即CODE39 \x43\x4f\x44\x45\x20\x33\x39\分别是HEX对应的ASCII字符串CODE 39,注意\x20空格也需要哦 \x00表示00
ASCII写法:
\x1b@\x1Dk\x04CODE39\x00 \xlb是ESC,@,\x1D是GS,k,\x04十六进制的4,这里要注意!NULL是\x00
十进制写法:不行!
混合写法: \x1b@\x1Dk\x04\x43\x4f\x44\x45\x20\x33\x39\x00
总结:最好的写法还是:
\x1b@\x1Dk\x04CODE39\x00
可读性好!
看到现在基本明白了,如果完全需要把字符串转译成HEX比较麻烦,因此还是用下面的做法。
指令详解