条形码code128编码规则

Standard

条形码或称条码barcode)是将宽度不等的多个黑条和空白,按照一定的编码规则排列,用以表达一组信息的图形标识符。常见的条形码是由反射率相差很大的黑条(简称条)和白条(简称空)排成的平行线图案。条形码可以标出物品的生产国、制造厂家、商品名称、生产日期、图书分类号、邮件起止地点、类别、日期等信息,因而在商品流通、图书管理、邮政管理、银行系统等许多领域都得到了广泛的应用。

条形码分类

条形码按类型可分为:线性条形码矩阵(二维)条形码

code128编码

Code 128是ISO/IEC 15417:2007[1]定义的条形码规范。

Code 128条码可以对全部128个ASCII字符(包括数字、大小写字母、符号和控制符)进行编码。

code128码是广泛应用在企业内部管理、生产流程、物流控制系统方面的条码码制,由于其优良的特性在管理信息系统的设计中被广泛使用,CODE128码是应用最广泛的线性条形码制之一。

code128编码分类

  • code128 A字符集:包括大写字母、数字、常用标点符号和一些控制符。
  • code128B 字符集:包括大小写字母、数字、常用标点符号。
  • code128C 字符集: 为纯数字序列。
  • code128Auto:是将上述三种字符集最佳优化组合。

code128编码构成

一个Code 128条形码由六部分组成。

  1. 空白区域
  2. 起始标记
  3. 数据区
  4. 校验符
  5. 终止符
  6. 空白区域

code128编码表

IDCode128ACode128BCode128CBandCode图案
0SPSP021222211011001100
1!!122212211001101100
2222222111001100110
3##312122310010011000
4$$412132210010001100
5%%513122210001001100
6&&612221310011001000
7712231210011000100
8((813221210001100100
9))922121311001001000
10**1022131211001000100
11++1123121211000100100
12,,1211223210110011100
131312213210011011100
14..1412223110011001110
15//1511322210111001100
16001612312210011101100
17111712322110011100110
18221822321111001110010
19331922113211001011100
20442022123111001001110
21552121321211011100100
22662222311211001110100
23772331213111101101110
24882431122211101001100
25992532112211100101100
26::2632122111100100110
27;;2731221211101100100
28<<2832211211100110100
29==2932221111100110010
30>>3021212311011011000
31??3121232111011000110
32@@3223212111000110110
33AA3311132310100011000
34BB3413112310001011000
35CC3513132110001000110
36DD3611231310110001000
37EE3713211310001101000
38FF3813231110001100010
39GG3921131311010001000
40HH4023111311000101000
41II4123131111000100010
42JJ4211213310110111000
43KK4311233110110001110
44LL4413213110001101110
45MM4511312310111011000
46NN4611332110111000110
47OO4713312110001110110
48PP4831312111101110110
49QQ4921133111010001110
50RR5023113111000101110
51SS5121311311011101000
52TT5221331111011100010
53UU5321313111011101110
54VV5431112311101011000
55WW5531132111101000110
56XX5633112111100010110
57YY5731211311101101000
58ZZ5831231111101100010
59[[5933211111100011010
60\\6031411111101111010
61]]6122141111001000010
62^^6243111111110001010
63__6311122410100110000
64NUL`6411142210100001100
65SOHa6512112410010110000
66STXb6612142110010000110
67ETXc6714112210000101100
68EOTd6814122110000100110
69ENQe6911221410110010000
70ACKf7011241210110000100
71BELg7112211410011010000
72BSh7212241110011000010
73HTi7314211210000110100
74LFj7414221110000110010
75VTk7524121111000010010
76FFI7622111411001010000
77CRm7741311111110111010
78SOn7824111211000010100
79SIo7913411110001111010
80DLEp8011124210100111100
81DC1q8112114210010111100
82DC2r8212124110010011110
83DC3s8311421210111100100
84DC4t8412411210011110100
85NAKu8512421110011110010
86SYNv8641121211110100100
87ETBw8742111211110010100
88CANx8842121111110010010
89EMy8921214111011011110
90SUBz9021412111011110110
91ESC{9141212111110110110
92FS|9211114310101111000
93GS}9311134110100011110
94RS~9413114110001011110
95USDEL9511411310111101000
96FNC3FNC39611431110111100010
97FNC2FNC29741111311110101000
98SHIFTSHIFT9841131111110100010
99CODECCODEC9911314110111011110
100CODEBFNC4CODEB11413110111101110
101FNC4CODEACODEA31114111101011110
102FNC1FNC1FNC141113111110101110
103StartAStartAStartA21141211010000100
104StartBStartBStartB21121411010010000
105StartCStartCStartC21123211010011100
106StopStopStop23311121100011101011

code128检验位计算

(开始位对应的ID值 + 每位数据在整个数据中的位置×每位数据对应的ID值)% 103

Code128编码示例

以 PZ1704946715 为例,开始为code128A,开始位对应的ID为103,第1位数据P对应的ID为48,第2位数据Z对应的ID为58,依此类推,可以计算。

检验位 =(103 + 1*48 + 2*58 + 3*17 + 4*23 + 5*16 + 6*20 +7*25 + 8*20 + 9*22 + 10*23 + 11*17 + 12*21)%103 = 61​

即检验位的ID为61。

对照编码表,PZ1704946715 编码表示为:开始位Start Code A(11010000100)+ 数据位[P(11101110110)+ Z(11101100010)+1(10011100110)+ 7(11101101110)+ 0(10011101100)+ 4(11001001110)+ 9(11100101100)+ 4(11001001110)+ 6(11001110100)+ 7(11101101110)+ 1(10011100110)+ 5(11011100100)]+ 检验位61(11001000010)+ 结束位Stop(1100011101011)

若要打印,只需将1用黑色线标出,0用白色线标出,就完成一个简单的条形码生成。

http://liuchang.men/2019/04/09/%E6%9D%A1%E5%BD%A2%E7%A0%81code128%E7%BC%96%E7%A0%81%E8%A7%84%E5%88%99/

Leave a Reply

Your email address will not be published. Required fields are marked *