AX 条码打印集成在BarCode类及其之类barcode*.
由子类的defaultFont方法指定字体属性。
eg, BarcodeCode39 指定条码字体"BC C39 3 to 1 HD Wide";
以code39为例。
Code 39只接受如下43个有效输入字符:
26个大写字母(A - Z), 十个数字(0 - 9), 连接号(-),句号(.),空格,美圆符号($),斜扛(/),加号(+)以及百分号(%)。 其余的输入将被忽略。 * 作为code39的起始和终结符。 编码规则:每五条线表示一个字符; 粗线表示1,细线表示0; 线条间的间隙宽的表示1,窄的表示0;
五条线加上它们之间的四条间隙就是九位二进制编码,而且这九位中必定有三位是1,所以称为39码;
条形码的首尾各一个 * 标识开始和结束。
所以在编码方法encodestring中,传过来的字符串需要预处理成全大写 string = strupr(string);
BarCodeString encodeString(BarCodeString _stringIn){ BarCodeString resultStr; int len = strlen(_stringIn); int x; int idx; if (len < 1) return _stringIn; // add the start character resultStr = num2char(42); // * 开始 for (x = 1; x <= len; x++) { idx = char2num(_stringIn, x); if (this.isValidChar(idx)) { resultStr += (idx == 32) ? num2char(44) : substr(_stringIn, x, 1); } } // add the stop code resultStr += num2char(42); //* 结束 return resultStr;}
eg: 以生产单号:“8105137709” 通过Code39转码显示返回字符串“*8105137709*"
同事要将显示生产单的字符串控件字体改为 ”BC C39 3 to 1 HD Wide"字体。(这个字体也可以从Table\barcodesetup读取。)
posted on 2015-06-30 10:51 阅读( ...) 评论( ...)