一、CODE 39编码规则
CODE 39码的编码规则是:
1、每五条线表示一个字符;
2、粗线表示1,细线表示0;
3、线条间的间隙宽的表示1,窄的表示0;
4、五条线加上它们之间的四条间隙就是九位二进制编码,而且这九位中必定有三位是1,所以称为39码;
5、条形码的首尾各一个*标识开始和结束
6、宽条和窄条的比率为2-3之间
序号 | 字符 | 编码 |
0 | 0 | nnnwwnwnnn |
1 | 1 | wnnwnnnnwn |
2 | 2 | nnwwnnnnwn |
3 | 3 | wnwwnnnnnn |
4 | 4 | nnnwwnnnwn |
5 | 5 | wnnwwnnnnn |
6 | 6 | nnwwwnnnnn |
7 | 7 | nnnwnnwnwn |
8 | 8 | wnnwnnwnnn |
9 | 9 | nnwwnnwnnn |
10 | A | wnnnnwnnwn |
11 | B | nnwnnwnnwn |
12 | C | wnwnnwnnnn |
13 | D | nnnnwwnnwn |
14 | E | wnnnwwnnnn |
15 | F | nnwnwwnnnn |
16 | G | nnnnnwwnwn |
17 | H | wnnnnwwnnn |
18 | I | nnwnnwwnnn |
19 | J | nnnnwwwnnn |
20 | K | wnnnnnnwwn |
21 | L | nnwnnnnwwn |
22 | M | wnwnnnnwnn |
23 | N | nnnnwnnwwn |
24 | O | wnnnwnnwnn |
25 | P | nnwnwnnwnn |
26 | Q | nnnnnnwwwn |
27 | R | wnnnnnwwnn |
28 | S | nnwnnnwwnn |
29 | T | nnnnwnwwnn |
30 | U | wwnnnnnnwn |
31 | V | nwwnnnnnwn |
32 | W | wwwnnnnnnn |
33 | X | nwnnwnnnwn |
34 | Y | wwnnwnnnnn |
35 | Z | nwwnwnnnnn |
36 | - | nwnnnnwnwn |
37 | . | wwnnnnwnnn |
38 | 空格 | nwwnnnwnnn |
39 | * | nwnnwnwnnn |
40 | $ | nwnwnwnnnn |
41 | / | nwnwnnnwnn |
42 | + | nwnnnwnwnn |
43 | % | nnnwnwnwnn |
n代表窄线,w代表宽线,最后一个编码都是n,是字符和字符之间的空白间隔
二、39码校验位的计算规则。
39码用的是Mod 43 校验计算法。
每个39码的字符有一个指定的值,如下表所示。
0=0 | 1=1 | 2=2 | 3=3 | 4=4 | 5=5 | 6=6 | 7=7 | 8=8 | 9=9 | A=10 |
B=11 | C=12 | D=13 | E=14 | F=15 | G=16 | H=17 | I=18 | J=19 | K=20 | L=21 |
M=22 | N=23 | O=24 | P=25 | Q=26 | R=27 | S=28 | T=29 | U=30 | V=31 | W=32 |
X=33 | Y=34 | Z=35 | -=36 | . = 37 | sp=38 | $=39 | /=40 | +=41 | %=42 |
|
示范字符串为 :12345ABCDE/
1、将所有的字符转换为相应的数值并相加。
1 +2 + 3 + 4 + 5 + 10 + 11 + 12 + 13 +14 + 40 = 115
2、将步骤1的结果除以43,取其余数。115 / 43 = 2 余 29
3、校验位是步骤2余数对应的字符。余数 = 29,29 所对应的字符是 T,T 即是校验位。
菁菁报表就是根据该算法实现了条码打印,详细内容可参见 www.qxexpress.com