因工作需要,需要在pos结款小票上打印条码,一开始想到控件方式实现,但是这种方式不太稳定,而且速度较慢。因为使用的热敏打印机是EPSON TM-58型打印机,所以想到了可以使用ESC/POS命令来实现条码的打印,这种方式不但速度快,而且可以在所有兼容ESC/POS指令集的打印机上通用,并且不涉及控件调用的问题,方便移植到不同的平台。
本文主要以CODE128 C编码举例,其他编码大同小异,需要了解编码方式的请参考相关介绍ESC/POS指令集的文档。代码如下:
//函数名称:f_code128c
//函数用途:将传入的12位字符串按照code128c编码规范计算得到供打印的字符串
// tm-58打印机最大支持16位条码,此处12位为演示用
//函数参数:as_in string val 传入的欲计算的12位条码
// ab_result blob ref 计算后得到的供打印的字符串 blob类型
//返回值:int 0成功 -1失败
//作者:鸡翅多 zeng78@gmail.com
//创建时间:2015-5-7
/*
code128 举例
格式: GS k n m d1~dn
说明: n=73(49H) 表示采用128码
m表示码长度(含起始码)
d1~dn表示码值
[举例]打印条码“No.1