Code128条形码是一个非常高密的字母数字条码,能够存储需要的编码数据,它可以编码所有128个ASCII码字符,它使用最少的空间。
在Code128符号体系中,每个数据字符编码都是由11个黑或白模块组成,这11个模块由三个条和三个空来形成,条和空可以由1-4个模块的宽度来组成。停止字符由13个模块组成。
code128码符号包括一个静止区(10倍X-尺寸 )、一个开始字符、编码数据、一个检测字符、停止字符和一个尾部的静止区(10倍X-尺寸),为了获得最佳的扫描效果(使用接触式扫描器),静止区至少要在6.35mm以上。
为了保证条形码的可读性(绝大都数条码扫描器都可以识度),最小的X-尺寸为7.5mil,最小的条形码高度是条形码宽度的15%或者6.35mm以上。
有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算法,下面举例说明:
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。
根据公式进行计算L=(11*7+35)*0.01639=1.83568英寸=46.6mm
根据公式计算的code128条形码宽度与软件实际生成的条形码宽度是一致的。
2、下图条形码通过Bartender软件编辑,采用code128C字符集,条形码密度为16.39mil,字符数为10。
根据公式(全部为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。
下面进行字符数统计:“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只能编码英文字母。
值
Code A
Code B
Code C
图案
想要打印的ASCII字符
条
空
条
空
条
空
0
SP
SP
00
2
1
2
2
2
2
SP(ASCII 32)
1
!
!
01
2
2
2
1
2
2
!(ASCII 33)
2
“
“
02
2
2
2
2
2
1
“(ASCII 34)
3
#
#
03
1
2
1
2
2
3
#(ASCII 35)
4
$
$
04
1
2
1
3
2
2
$ (ASCII 36)
5
%
%
05
1
3
1
2
2
2
% (ASCII 37)
6
&
&
06
1
2
2
2
1
3
& (ASCII 38)
7
‘
‘
07
1
2
2
3
1
2
‘ (ASCII 39)
8
(
(
08
1
3
2
2
1
2
( (ASCII 40)
9
)
)
09
2
2
1
2
1
3
) (ASCII 41)
10
*
*
10
2
2
1
3
1
2
* (ASCII 42)
11
+
+
11
2
3
1
2
1
2
+ (ASCII 43)
12
,
,
12
1
1
2
2
3
2
, (ASCII 44)
13
–
–
13
1
2
2
1
3
2
– (ASCII 45)
14
.
.
14
1
2
2
2
3
1
. (ASCII 46)
15
/
/
15
1
1
3
2
2
2
/ (ASCII 47)
16
0
0
16
1
2
3
1
2
2
0 (ASCII 48)
17
1
1
17
1
2
3
2
2
1
1(ASCII 49)
18
2
2
18
2
2
3
2
1
1
2 (ASCII 50)
19
3
3
19
2
2
1
1
3
2
3 (ASCII 51)
20
4
4
20
2
2
1
2
3
1
4 (ASCII 52)
21
5
5
21
2
1
3
2
1
2
5 (ASCII 53)
22
6
6
22
2
2
3
1
1
2
6 (ASCII 54)
23
7
7
23
3
1
2
1
3
1
7 (ASCII 55)
24
8
8
24
3
1
1
2
2
2
8 (ASCII 56)
25
9
9
25
3
2
1
1
2
2
9 (ASCII 57)
26
:
:
26
3
2
1
2
2
1
: (ASCII 57)
27
;
;
27
3
1
2
2
1
2
; (ASCII 59)
28
<
<
28
3
2
2
1
1
2
< (ASCII 60)
29
=
=
29
3
2
2
2
1
1
= (ASCII 61)
30
>
>
30
2
1
2
1
2
3
> (ASCII 62)
31
?
?
31
2
1
2
3
2
1
? (ASCII 63)
32
@
@
32
2
3
2
1
2
1
@ (ASCII 64)
33
A
A
33
1
1
1
3
2
3
A (ASCII 65)
34
B
B
34
1
3
1
1
2
3
B (ASCII 66)
35
C
C
35
1
3
1
3
2
1
C (ASCII 67)
36
D
D
36
1
1
2
3
1
3
D (ASCII 68)
37
E
E
37
1
3
2
1
1
3
E (ASCII 69)
38
F
F
38
1
3
2
3
1
1
F (ASCII 70)
39
G
G
39
2
1
1
3
1
3
G (ASCII 71)
40
H
H
40
2
3
1
1
1
3
H (ASCII 72)
41
I
I
41
2
3
1
3
1
1
I (ASCII 73)
42
J
J
42
1
1
2
1
3
3
J (ASCII 74)
43
K
K
43
1
1
2
3
3
1
K (ASCII 75)
44
L
L
44
1
3
2
1
3
1
L (ASCII 76)
45
M
M
45
1
1
3
1
2
3
M (ASCII 77)
46
N
N
46
1
1
3
3
2
1
N (ASCII 78)
47
O
O
47
1
3
3
1
2
1
O (ASCII 79)
48
P
P
48
3
1
3
1
2
1
P (ASCII 80)
49
Q
Q
49
2
1
1
3
3
1
Q (ASCII 81)
50
R
R
50
2
3
1
1
3
1
R (ASCII 82)
51
S
S
51
2
1
3
1
1
3
S (ASCII 83)
52
T
T
52
2
1
3
3
1
1
T (ASCII 84)
53
U
U
53
2
1
3
1
3
1
U (ASCII 85)
54
V
V
54
3
1
1
1
2
3
V (ASCII 86)
55
W
W
55
3
1
1
3
2
1
W (ASCII 87)
56
X
X
56
3
3
1
1
2
1
X (ASCII 88)
57
Y
Y
57
3
1
2
1
1
3
Y (ASCII 89)
58
Z
Z
58
3
1
2
3
1
1
Z (ASCII 90)
59
[
[
59
3
3
2
1
1
1
[ (ASCII 91)
60
\
\
60
3
1
4
1
1
1
\(ASCII 92)
61
]
]
61
2
2
1
4
1
1
] (ASCII 93)
62
^
^
62
4
3
1
1
1
1
^ (ASCII 94)
63
_
_
63
1
1
1
2
2
4
_ (ASCII 95)
64
NUL
`
64
1
1
1
4
2
2
` (ASCII 96)
65
SOH
a
65
1
2
1
1
2
4
a (ASCII 97)
66
STX
b
66
1
2
1
4
2
1
b (ASCII 98)
67
ETX
c
67
1
4
1
1
2
2
c (ASCII 99)
68
EOT
d
68
1
4
1
2
2
1
d (ASCII 100)
69
ENQ
e
69
1
1
2
2
1
4
e (ASCII 101)
70
ACK
f
70
1
1
2
4
1
2
f (ASCII 102)
71
BEL
g
71
1
2
2
1
1
4
g (ASCII 103)
72
BS
h
72
1
2
2
4
1
1
h (ASCII 104)
73
HT
i
73
1
4
2
1
1
2
i (ASCII 105)
74
LF
j
74
1
4
2
2
1
1
j (ASCII 106)
75
VT
k
75
2
4
1
2
1
1
k (ASCII 107)
76
FF
l
76
2
2
1
1
1
4
l (ASCII 108)
77
CR
m
77
4
1
3
1
1
1
m (ASCII 109)
78
SO
n
78
2
4
1
1
1
2
n (ASCII 110)
79
SI
o
79
1
3
4
1
1
1
o (ASCII 111)
80
DLE
p
80
1
1
1
2
4
2
p (ASCII 112)
81
DC1
q
81
1
2
1
1
4
2
q (ASCII 113)
82
DC2
r
82
1
2
1
2
4
1
r (ASCII 114)
83
DC3
s
83
1
1
4
2
1
2
s (ASCII 115)
84
DC4
t
84
1
2
4
1
1
2
t (ASCII 116)
85
NAK
u
85
1
2
4
2
1
1
u (ASCII 117)
86
SYN
v
86
4
1
1
2
1
2
v (ASCII 118)
87
ETB
w
87
4
2
1
1
1
2
w (ASCII 119)
88
CAN
x
88
4
2
1
2
1
1
x (ASCII 120)
89
EM
y
89
2
1
2
1
4
1
y (ASCII 121)
90
SUB
z
90
2
1
4
1
2
1
z (ASCII 122)
91
ESC
{
91
4
1
2
1
2
1
{ (ASCII 123)
92
FS
|
92
1
1
1
1
4
3
| (ASCII 124)
93
GS
}
93
1
1
1
3
4
1
} (ASCII 125)
94
RS
~
94
1
3
1
1
4
1
~ (ASCII 126)
95 (Hex 7F)
US
DEL
95
1
1
4
1
1
3
DEL (ASCII 127)
96 (Hex 80)
FNC 3
FNC 3
96
1
1
4
3
1
1
? (ASCII 128)
97 (Hex 81)
FNC 2
FNC 2
97
4
1
1
1
1
3
ü (ASCII 129)
98 (Hex 82)
SHIFT
SHIFT
98
4
1
1
3
1
1
é (ASCII 130)
99 (Hex 83)
CODE C
CODE C
99
1
1
3
1
4
1
a (ASCII 131)
100 (Hex 84)
CODE B
FNC 4
CODE B
1
1
4
1
3
1
? (ASCII 132)
101 (Hex 85)
FNC 4
CODE A
CODE A
3
1
1
1
4
1
à (ASCII 133)
102 (Hex 86)
FNC 1
FNC 1
FNC 1
4
1
1
1
3
1
? (ASCII 134)
值
开始符号
图案
想要打印的ASCII字符
条
空
条
空
条
空
103 (Hex 87)
START (Code A)
2
1
1
4
1
2
? (ASCII 135)
104 (Hex 88)
START (Code B)
2
1
1
2
1
4
? (ASCII 136)
105 (Hex 89)
START (Code C)
2
1
1
2
3
2
‰ (ASCII 137)
106 (Hex 6A)
STOP (All Codes)
2
3
3
1
1,1
2
? (ASCII 138)