在改造图书管理系统中,碰到一个新需求,图书Isbn的条码打印,需要用到EAN13 条形码,上网搜了一下资料,大多都是需要控件的方式来实现,感觉不是特别爽。研究了一下EAN13的背景资料,编码方式,规则,采用ean13.ttf字体轻松实现了EAN13条码打印。
我自写了两个函数,一个计算EAN13的检验位函数clefean,一个是ISBN的转换函数。分别如下:
public function integer clefean (string code);
/*检验码计算的步聚如下:
以2342355654652为例:
1、从序号2开始,将所有偶数位的数字代码求和,得出S1
S1 = 3 + 2 + 5 + 5 + 6 + 2 = 23
2、从序号3开始,将所有奇数位的数字求和,得出S2
S2 = 2 + 4 + 3 + 6 + 4 + 5 = 24
3、S3 = S1 * 3 + S2
S3 = 23*3 + 24 = 93
4、C = 10 -(S3的个位数),得到校验码C的值,并且当S3的个位数为0时,C=0。
C=10 - 3 = 7
*/
string tabcode[13]
integer ope1
integer ope2
integer ope3
integer ope4
tabcode[1] = mid(code,1,1)
tabcode[2] = mid(code,