最近的项目有一个条码打印的要求, 鉴于很多条码软件/库 都是收费的, 一直在找免费的.
在Google上搜了很久, 资料是不少, 但不是免费的 就是 没有源码的.
于是, 决定自己写代码解决.
继续Google, 看了下CODE128的原理, 貌似挺复杂, 还分3个字符集, 比较下来 决定使用CODESET B.
先简述一下CODE128的原理吧,分别以一个unicode字符作为起始符(Ì)和终止符(Î),
然后需要根据你的字符串, 计算出当前字符集的校验码:
#region "本段为转载"
Code 128 Barcode Table
Value Code Set
A Code Set
B Code Set
C Bar/Space Pattern
B S B S B S
0 SP SP 00 2 1 2 2 2 2
1 ! ! 01 2 2 2 1 2 2
2 " " 02 2 2 2 2 2 1
3 # # 03 1 2 1 2 2 3
4 $ $ 04 1 2 1 3 2 2
5 % % 05 1 3 1 2 2 2
6 & & 06 1 2 2 2 1 3
7 ' ' 07 1 2 2 3 1 2
8 ( ( 08 1 3 2 2 1 2
9 ) ) 09 2 2 1 2 1 3
10 * * 10 2 2 1 3 1 2
11 + + 11 2 3 1 2 1 2
12 , , 12 1 1 2 2 3 2
13 - - 13 1 2 2 1 3 2
14 . . 14 1 2 2 2 3 1
15 / / 15 1 1 3 2 2 2
16 0 0 16 1 2 3 1 2 2
17 1 1 17 1 2 3 2 2 1
18 2 2 18 2 2 3 2 1 1
19 3 3 19 2 2 1 1 3 2
20 4 4 20 2 2 1 2 3 1
21 5 5 21 2 1 3 2 1 2
22 6 6 22 2 2 3 1 1 2
23 7 7 23 3 1 2 1 3 1
24 8 8 24 3 1 1 2 2 2
25 9 9 25 3 2 1 1 2 2
26 : : 26 3 2 1 2 2 1
27 ; ; 27 3 1 2 2 1 2
28 < < 28 3 2 2
在Google上搜了很久, 资料是不少, 但不是免费的 就是 没有源码的.
于是, 决定自己写代码解决.
继续Google, 看了下CODE128的原理, 貌似挺复杂, 还分3个字符集, 比较下来 决定使用CODESET B.
先简述一下CODE128的原理吧,分别以一个unicode字符作为起始符(Ì)和终止符(Î),
然后需要根据你的字符串, 计算出当前字符集的校验码:
#region "本段为转载"
Code 128 Barcode Table
Value Code Set
A Code Set
B Code Set
C Bar/Space Pattern
B S B S B S
0 SP SP 00 2 1 2 2 2 2
1 ! ! 01 2 2 2 1 2 2
2 " " 02 2 2 2 2 2 1
3 # # 03 1 2 1 2 2 3
4 $ $ 04 1 2 1 3 2 2
5 % % 05 1 3 1 2 2 2
6 & & 06 1 2 2 2 1 3
7 ' ' 07 1 2 2 3 1 2
8 ( ( 08 1 3 2 2 1 2
9 ) ) 09 2 2 1 2 1 3
10 * * 10 2 2 1 3 1 2
11 + + 11 2 3 1 2 1 2
12 , , 12 1 1 2 2 3 2
13 - - 13 1 2 2 1 3 2
14 . . 14 1 2 2 2 3 1
15 / / 15 1 1 3 2 2 2
16 0 0 16 1 2 3 1 2 2
17 1 1 17 1 2 3 2 2 1
18 2 2 18 2 2 3 2 1 1
19 3 3 19 2 2 1 1 3 2
20 4 4 20 2 2 1 2 3 1
21 5 5 21 2 1 3 2 1 2
22 6 6 22 2 2 3 1 1 2
23 7 7 23 3 1 2 1 3 1
24 8 8 24 3 1 1 2 2 2
25 9 9 25 3 2 1 1 2 2
26 : : 26 3 2 1 2 2 1
27 ; ; 27 3 1 2 2 1 2
28 < < 28 3 2 2