[转]采用GDI技术生成条形码(Code39)
简介
Ø Code39介绍
Ø Code Table
Ø 示例
Code39介绍
1. Code 39是一种条形码的编码标准。它的码表构成由26个大写英文字母(A-Z)和10个数字符号(0-9)以及7个特殊字符(-.sp*/+%)组成。
2. 一个Code39条码由5个条码区4个空白区成共9个区域组成,每个区域只能是宽或窄,并且9个区域中总有3个宽的,这就是Code39名字的由来。
3. 通常使用*作为编码的起始与结束。并且编码的起始与终止前后需要一段干净的区域(通常比长度大0.1英寸)。
4. 通常使读码枪能顺利识别,其中“窄”条码的最小宽度为7.5mils(1 mil=1/1000英寸)或0.19毫米。
5. 如果“窄”条码的宽度大于20mils,则“宽“条码的宽度为“窄”条码的2-3倍;如果“窄”条码的宽度小于20mils,则“宽”条码的跨度为“窄”条码的2-2.2倍。
6. 条码的高度至少为条码总宽度的0.15倍或0.25英寸
条码总宽度计算公式
L = (C + 2)(3N + 6)X + (C + 1)I
L条码的总宽度,不包含“干净区域“
C条码中符号的个数
X其中“窄”条码的宽度
N“宽“条码与“窄”条码的比例
I分隔符号的宽度,通常为黑条间所夹的白色区域
Code39 Table
|
Char. |
Pattern |
Char. |
Pattern |
Char. |
Pattern |
Char. |
Pattern |
|
0 |
n n n w w n w n n |
C |
w n w n n w n n n |
O |
w n n n w n n w n |
- |
n w n n n n w n w |
|
1 |
w n n w n n n n w |
D |
n n n n w w n n w |
P |
n n w n w n n w n |
. |
w w n n n n w n n |
|
2 |
n n w w n n n n w |
E |
w n n n w w n n n |
Q |
n n n n n n w w w |
SP |
n w w n n n w n n |
|
3 |
w n w w n n n n n |
F |
n n w n w w n n n |
R |
w n n n n n w w n |
* |
n w n n w n w n n |
|
4 |
n n n w w n n n w |
G |
n n n n n w w n w |
S |
n n w n n n w w n |
$ |
n w n w n w n n n |
|
5 |
w n n w w n n n n |
H |
w n n n n w w n n |
T |
n n n n w n w w n |
/ |
n w n w n n n w n |
|
6 |
n n w w w n n n n |
I |
n n w n n w w n n |
U |
w w n n n n n n w |
+ |
n w n n n w n w n |
|
7 |
n n n w n n w n w |
J |
n n n n w w w n n |
V |
n w w n n n n n w |
% |
n n n w n w n w n |
|
8 |
w n n w n n w n n |
K |
w n n n n n n w w |
W |
w w w n n n n n n |
||
|
9 |
n n w w n n w n n |
L |
n n w n n n n w w |
X |
n w n n w n n n w |
||
|
A |
w n n n n w n n w |
M |
w n w n n n n w n |
Y |
w w n n w n n n n |
||
|
B |
n n w n n w n n w |
N |
n n n n w n n w w |
Z |
n w w n w n n n n |
(b黑色,s白色,n“窄“,w宽) SP为空格
示例
说明:
当前条码打印基本都是用条码字库实现的。在实际操作中需要依赖字库,并且发现有的条码识别枪对其生成的条码识别率不高。
示例采用java语言编码实现,其中“宽“与“窄”采用GDI中的像素为单位且已黑白为条码颜色。其中生成一张底色为白色的图片,然后在上面化黑色的条码,然后进行偏移画下一个黑色的条码。生成示例*JOYCODES.COM*
联系方式:joycsharp@hotmail.com 转载请注明出处。