Code128条形码如何计算其宽度?如何得出其校验位?

发布时间: 2015-06-03 09:21 字号:

Code128条形码是一个非常高密的字母数字条码,能够存储需要的编码数据,它可以编码所有128个ASCII码字符,它使用最少的空间。

在Code128符号体系中,每个数据字符编码都是由11个黑或白模块组成,这11个模块由三个条和三个空来形成,条和空可以由1-4个模块的宽度来组成。停止字符由13个模块组成。

Code128码符号包括一个静止区(10倍X-尺寸 )、一个开始字符、编码数据、一个检测字符、停止字符和一个尾部的静止区(10倍X-尺寸),为了获得最佳的扫描效果(使用接触式扫描器),静止区至少要在6.35mm以上。

为了保证条形码的可读性(绝大都数条码扫描器都可以识度),最小的X-尺寸为7.5mil,最小的条形码高度是条形码宽度的15%或者6.35mm以上。

Code128条形码组成结构

有106个不同的3条/3空组合,106个组合中的任何一个都可以被分配为三个不同字符集含义之一,Code128的字符设置参见下面附录。通过三个不同的开始字符来进行标识,START CodeA允许所有的键盘字符+控制字符和特殊字符进行编码,START CodeB包括所有标准字母数字键盘字符+小写字母和特殊字符,START CodeC包括一个100位数字(00~99),可用于编码数字数据的密度压缩。

在Code128条形码内,可以通过特殊的字符代码和SHIFT进行代码集之间的转移,转移到指定的字符集。

FNC代码定义为条码扫描器的指示。FNC1是保留供将来使用。FNC2告诉读取器去存储读取的数据和传输它。FNC3是保留读码器初始化和其他读码器功能。FNC4是保留为未来的应用。

每个字符都有一个值,范围从0到105,这个值被用来计算Code128条形码的校验字符。

校验字符通过MOD103算法,下面举例说明:

例子:BarCode 1 

信息:StartB B a r C o d e 1

值:104 34 65 82 35 79 68 69 0 17

位置:- 1 2 3 4 5 6 7 8 9

计算:104+(34*1)+(65*2)+(82*3)+(35*4)+(79*5)+(68*6)+(69*7)+(0*8)+(17*9)=2093

2093/103=20余33

33=A

完整的条形码信息:(Start B)BarCode 1(A)(STOP)

注意:当你打印校验字符“A”时,你需打印ASCII字符数65(而不是33),你必须增加32到校验数上,然后找出打印的ASCII字符。比如说,你使用START A打印CodeA条码,计算出的校验数字是64,你可能会认为打印一个NULL字符,那你就错了,你必须增加32得到一个96,你能够打印出ASCII字符96( `字符)。

Code128条形码的高度必须至少是条形码宽度的0.15倍或者6.35mm,以两个数值的较大者为准,Code128条形码的总宽度由下面的公式得出:

L=(11C+35)X (字母数字) ;L = (5.5C+35)X(数字仅使用CodeC)

这里:

L=Code128条形码的宽度(不包括静止区)(英寸为单位)

C=数据字符、代码字符和转移字符的数量(不包括开始、停止、校验字符,他们将被自动添加)

X=X-尺寸(英寸为单位,比如,7mil条形码的X-尺寸为0.007英寸)

下面使用三个例子,分别说明Code128条形码长度的计算:

1、下图条形码通过Bartender软件编辑,采用Code128A字符集,条形码密度为16.39mil,字符数为7。

Code128A条形码

根据公式进行计算L=(11*7+35)*0.01639=1.83568英寸=46.6mm

根据公式计算的Code128条形码宽度与软件实际生成的条形码宽度是一致的。

2、下图条形码通过Bartender软件编辑,采用Code128C字符集,条形码密度为16.39mil,字符数为10。

Code128C条形码

根据公式(全部为CodeC时的公式)进行计算L=(5.5*10+35)*0.01639=1.4751英寸=37.5mm

根据公式计算的Code128条形码宽度与软件实际生成的条形码宽度是一致的。

采用Code128C时也可以采用2位解码的方式,如上图所示的1256742345,可以解码为“12”“56”“74”“23”“45”总共5个字符。

根据公式进行计算L=(11*5+35)*0.01639=1.4751英寸=37.5mm,与使用另外一个公式的结果是一致的。

3、下图条形码通过Bartender软件编辑,前面的小写字母采用Code128B字符集,后面的数字采用Code128C字符集,中间使用了shift转换字符,条形码密度为16.39mil,字符数为10。

Code128B条形码

下面进行字符数统计:“abc”采用Code128B字符集,计算为3个字符,“6742345”采用Code128C字符集,计算为4个字符,中间转换字符Shift计算为1个字符,总共为8个字符。

根据公式进行计算L=(11*8+35)*0.01639=2.01597英寸=51.2mm

根据公式计算的Code128条形码宽度与软件实际生成的条形码宽度是一致的。

附录:Code128条形码字符表

下表显示了三个不同的字符集,每个字符的十进制值是用来计算校验字符。最后一列显示的字符模式的条和空。数字显示模块的数量范围内给定的空间或酒吧。为了得到扩展ASCII十进制,添加32在第一列的十进制值。这里有一个很好的扩展ASCII表。请注意,Code128只能编码英文字母。

Code128条形码字符表 

欢迎联系我们咨询相关业务
微信二维码