Code 128 规则解析

news/2024/6/29 2:53:23

1.CODE 128 标准

1.1 code 128码格式:

 

格式:image

  从左起: 空白区域,起始字符(Start),数据区域(data),校验码(check),结束字符(Stop),空白区域
  所有字符条纹图像都是以黑色开始,白色结束,只有结束字符例外。

1.2 起始字符:


由于128码有三个字符集。所以有三个起始字符。

Start A : 表示后面的码值代码是从字符集A中值—— 全部大写字母和标点符号和特殊符号。
              Start A的值为:六个黑白粗细不一交替地表示为:{2,1,1,4,1,2}       


Start B: 表示字符集B——全部大小写字符和标点符号。

             Start B的值为:六个黑白粗细不一交替地表示为:{2,1,1,2,1,4} ;


Start C: 表示字符集C——数字00-99.

             Start C的值为:六个黑白粗细不一交替地表示为:{2,1,1,2,3,2}


1.3 数据字符的表示


在128码中所有数据都是形如:d1d2…di ,其中di在(1,4)之间,且1<=i<=6 ,且sum(di) =11。

即总共需要绘制成11条黑白相间的条纹。

校验码算法:

校验码=(起始字符值 +第一位数据值*1 +第二位数据值*2+ …. + 第 n 位数据*n )%103;

1.4 结束字符:


128码结束字符只有一个在编码表中以Stop 来表示,数据为:{2,3,3,1,1,1,2};

 

 

2.图形方式输出Code128C条形码

     

       最近的项目牵涉到一维条码打印的问题。条码的选型上倒没什么,因为要求短且仅包含数字,所以决定选用Code128C。在国外的网站上找了点资料研究了下,终于大致搞懂了Code128C的原理和实现方法。

       Code128C只能编码长度是偶数的数字串,这是它的前提之一。说起来编码规则很简单,00 - 99 这100个数字每个数字都预先规定好一个条码,然后把原始的待编码字符串两位两位的读取,每个两位都从上面提到的码表中找到对应的条码,追加。

      举个例子,我们要打印12345678的Code128c条码。

      首先打印Code128c的条码头,bbsbssbbbss。(b代表1个单位宽度的竖线,s代表1个单位宽度的空白)

      然后对12345678编码。

      我们把它看成 12 34 56 78。12对应的条码是bsbbssbbbss,34对应的条码是bsssbsbbsss,56对应的条码是bbbsssbsbbs,78对应的条码是bbssssbsbss。按次序堆积起来就是了。

       现在应该很好理解为什么C型128码可以打印的比较短,就是因为输出的信息被压缩到原来的一半。

       接下来就是一个自校验码。计算方法是:(105 + (1 * 12 + 2 * 34 + 3 * 56 + 4 *78)) % 103 = 47。再追加47对应的条码bsssbbbsbbs。

       这里有个注意点是,第n组数字要乘以n。比如,12是第一组所以乘1,而34是第二组所以乘2。

      最后就是终结符,固定为bbsssbbbsbsbb,也追加。

      如此得出一个可以代表条形码的字符串:
      bbsbssbbbss bsbbssbbbss bsssbsbbsss bbbsssbsbbs bbssssbsbss bsssbbbsbbs bbsssbbbsbsbb (本字符串中的空格仅作演示,实际编码的时候不会产生空格)

      也就是 StartC 12 34 56 78 47 Stop (实际上没空格)

 

3. Code 128 Barcode Table

ValueCode Set
A
Code Set
B
Code Set
C
Bar/Space Pattern
B S B S B S
0SPSP002 1 2 2 2 2
1!!012 2 2 1 2 2
2""022 2 2 2 2 1
3##031 2 1 2 2 3
4$$041 2 1 3 2 2
5%%051 3 1 2 2 2
6&&061 2 2 2 1 3
7''071 2 2 3 1 2
8((081 3 2 2 1 2
9))092 2 1 2 1 3
10**102 2 1 3 1 2
11++112 3 1 2 1 2
12,,121 1 2 2 3 2
13--131 2 2 1 3 2
14..141 2 2 2 3 1
15//151 1 3 2 2 2
1600161 2 3 1 2 2
1711171 2 3 2 2 1
1822182 2 3 2 1 1
1933192 2 1 1 3 2
2044202 2 1 2 3 1
2155212 1 3 2 1 2
2266222 2 3 1 1 2
2377233 1 2 1 3 1
2488243 1 1 2 2 2
2599253 2 1 1 2 2
26::263 2 1 2 2 1
27;;273 1 2 2 1 2
28<<283 2 2 1 1 2
29==293 2 2 2 1 1
30>>302 1 2 1 2 3
31??312 1 2 3 2 1
32@@322 3 2 1 2 1
33AA331 1 1 3 2 3
34BB341 3 1 1 2 3
35CC351 3 1 3 2 1
36DD361 1 2 3 1 3
37EE371 3 2 1 1 3
38FF381 3 2 3 1 1
39GG392 1 1 3 1 3
40HH402 3 1 1 1 3
41II412 3 1 3 1 1
42JJ421 1 2 1 3 3
43KK431 1 2 3 3 1
44LL441 3 2 1 3 1
45MM451 1 3 1 2 3
46NN461 1 3 3 2 1
47OO471 3 3 1 2 1
48PP483 1 3 1 2 1
49QQ492 1 1 3 3 1
50RR502 3 1 1 3 1
51SS512 1 3 1 1 3
52TT522 1 3 3 1 1
53UU532 1 3 1 3 1
54VV543 1 1 1 2 3
55WW553 1 1 3 2 1
56XX563 3 1 1 2 1
57YY573 1 2 1 1 3
58ZZ583 1 2 3 1 1
59[[593 3 2 1 1 1
60\\603 1 4 1 1 1
61]]612 2 1 4 1 1
62^^624 3 1 1 1 1
63__631 1 1 2 2 4
64NUL`641 1 1 4 2 2
65SOHa651 2 1 1 2 4
66STXb661 2 1 4 2 1
67ETXc671 4 1 1 2 2
68EOTd681 4 1 2 2 1
69ENQe691 1 2 2 1 4
70ACKf701 1 2 4 1 2
71BELg711 2 2 1 1 4
72BSh721 2 2 4 1 1
73HTi731 4 2 1 1 2
74LFj741 4 2 2 1 1
75VTk752 4 1 2 1 1
76FFI762 2 1 1 1 4
77CRm774 1 3 1 1 1
78SOn782 4 1 1 1 2
79SIo791 3 4 1 1 1
80DLEp801 1 1 2 4 2
81DC1q811 2 1 1 4 2
82DC2r821 2 1 2 4 1
83DC3s831 1 4 2 1 2
84DC4t841 2 4 1 1 2
85NAKu851 2 4 2 1 1
86SYNv864 1 1 2 1 2
87ETBw874 2 1 1 1 2
88CANx884 2 1 2 1 1
89EMy892 1 2 1 4 1
90SUBz902 1 4 1 2 1
91ESC{914 1 2 1 2 1
92FS|921 1 1 1 4 3
93GS}931 1 1 3 4 1
94RS~941 3 1 1 4 1
95USDEL951 1 4 1 1 3
96FNC 3FNC 3961 1 4 3 1 1
97FNC 2FNC 2974 1 1 1 1 3
98SHIFTSHIFT984 1 1 3 1 1
99CODE CCODE C991 1 3 1 4 1
100CODE BFNC 4CODE B1 1 4 1 3 1
101FNC 4CODE ACODE A3 1 1 1 4 1
102FNC 1FNC 1FNC 14 1 1 1 3 1
103Start AStart AStart A2 1 1 4 1 2
104Start BStart BStart B2 1 1 2 1 4
105Start CStart CStart C2 1 1 2 3 2
106StopStopStop2 3 3 1 1 1 2

  

4.参考文献

http://blog.csdn.net/jato333/article/details/3748375

http://blog.csdn.net/dengchonglin/article/details/7680722

转载于:https://www.cnblogs.com/pengzhen/p/4361049.html


http://www.niftyadmin.cn/n/917667.html

相关文章

google金山词霸推出挑战有道桌面词典

google金山词霸推出挑战有道桌面词典&#xff1a; 原来一直用有道的&#xff0c;觉得做的不错&#xff0c;现在突然看到了强强联手&#xff0c;看来又是一番激励的竞争。不过越来越感觉google.cn也是跟风的。原来有生活&#xff0c;输入法的推出

WCF TCP 错误代码 10061: 由于目标计算机积极拒绝

表象是连不上服务端&#xff0c;本质原因多种多样&#xff0c;网络硬件问题导致的网络不通、服务本身问题或没有启动、或者防火墙阻隔等等不一而足。 1.ping看服务端能否ping通&#xff1b; 2.telnet ip地址 端口 &#xff0c;看看是否通&#xff1b; 此时如果端口通&#xff0…

java爬虫入门第一弹——从抓取百度首页开始

简单介绍一下&#xff1a; 老王是个新人&#xff0c;心血来潮想用java试试写爬虫&#xff0c;完全零基础&#xff0c;搜了很多教程&#xff0c;往往因为作者水平太高&#xff0c;不能一下子理解大佬代码中的深意&#xff0c;并且有些看似很简单的东西&#xff0c;对于我这种菜…

合作项目2

结组成员&#xff1a;信1201-1柴珏辉 信1201-2邓锐 一、要求 1、题目: 返回一个二维数组中最大子数组的和。 2、要求&#xff1a; 输入一个整形数组&#xff0c;数组里有正数也有负数。 数组中连续的一个或多个整数组成一个子数组&#xff0c;每个子数组都有一个和。 求所有子数…

program is a serialization procedure

Today , I get it . program is a serialization procedure, Tulin support. Mark.

ARQC与ARPC的生成和校验方法

ARQC&#xff1a;authenticate request cryptogram,授权请求报文 ARPC:authenticate response cryptogram,授权响应报文 AC:application cryptogram,应用密文 AAC:application authenticate cryptogram,应用认证密文 TC:transaction certificate,交易证书 ATC:application tran…

java爬虫入门第二弹——通过URL下载图片(以下载百度logo为例)

简单介绍一下&#xff1a; 老王是个新人&#xff0c;心血来潮想用java试试写爬虫&#xff0c;完全零基础&#xff0c;搜了很多教程&#xff0c;往往因为作者水平太高&#xff0c;不能一下子理解大佬代码中的深意&#xff0c;并且有些看似很简单的东西&#xff0c;对于我这种菜…

mysql metadata lock(三)

前言 MDL锁主要用来保护Mysql内部对象的元数据&#xff0c;通过MDL机制保证DDL与DML以及SELECT查询操作的并发。MySQL Meta Lock(一)和MySQL Meta Lock(二)已经讲了一些关于MDL知识&#xff0c;本文将会对MDL进行一个补充&#xff0c;并解释查询堵塞和mysqldump获取一致性备份的…