كد 128 امكان كد گذاري همه ی 128 حرف مربوط به مجموعه كاراكترهاي كد اسكي را
ارائه مي كند. اين كد با استفاده از خطوط و فضاهاي خالي با 4 پهناي مختلف ،
به بيشترين فشردگي ممكن سمبل ها نسبت به روش هاي قديمي تر خود كه از خطوط و
فضاهاي خالي با 2 ضخامت مختلف استفاده مي كردند ، رسيده است
كد 128 ممكن است به صورت دو طرفه (از هر دو جهت ) اسكن شود و محدوديتي هم
براي تعداد كاراكترها در هر باركد وجود ندارد. هر چند ممكن است طول باركد با
توجه به نوع اسكنر مورد استفاده و يا مكان مورد نظر براي چاپ باركد محدود شود
. اما اين روش محدوديتي براي طول باركد ايجاد شده ندارد.
كد 128 سه مجموعه كاراكتري متفاوت دارد كه در جدول مشخصات باركد به نام هاي Code Set A و Code Set B و Code Set C مشخص شده است .هر
كدام از اين سه مجموعه كد مي تواند با كاراكتر شروع مربوط به خودش مورد
انتخاب واقع شود. كاراكتر خاص 'shift' در هر مجموعه به شما امكان مي دهد تا
بتوانيد در بين يك كد ست از كد ست هاي ديگر هم استفاده كنيد با اين توصيف
امكان استفاده ازچند كد ست در يك بار كد وجود دارد. با استفاده از اين روش
طول باركد چاپ شده مي تواند به كمترين حد ممكن خود برسد.
در صورتي كه داده ها فقط شامل اعداد باشد استفاده از مجموعه كد C باعث مي شود
تا طول باركد چاپ شده به كمترين حد ممكن تقليل پيدا كند . البته بايد اين
نكته را در نظر داشته باشيد كه براي استفاده از Code Set C بايستي تعداد
ارقام رشته اي كه مي خواهيد باركد آن را چاپ كنيد زوج بوده و حداقل 4 رقم و
يا بيشتر طول داشته باشد.
هر كدام از مجموعه كدهاي A,B,C يك يا چند كاراكتر براي توابع خاص رزرو كرده
اند
از ويژگي هاي كد 128 استفاده از رقم كنترل براي بررسي صحت باركد خوانده شده
توسط دستگاه اسكنر باركد مي باشد.
ساختار باركد 128 به صورت زير است
• يك فضاي يكنواخت و يا خالي در سمت چپ خطوط باركد
• كاراكتر شروع
• تعداد نامحدودي از داده ها
• رقم كنترل صحت
• كاراكتر خاتمه
• يك فضاي يكنواخت و يا خالي در سمت راست خطوط باركد
پهناي فضاي يكنواخت و يا خالي حداقل بايد 10 برابر پهناي نازكترين خط /
نازكترين فاصله خالي در باركد باشد.
هر كاراكتر در باركد 128 تركيبي از 3 خط و 3 فاصله است . (كاراكتر خاتمه
داراي 4 خط و 3 فاصله مي باشد ) .هر خط / فاصله خالي مي تواند يكي از 4 واحد
پهناي مختلف را داشته باشد . نازكترين خط / فاصله خالي بايد يك چهارم پهن
ترين خط/ فاصله خالي باشد. جدول مشخصات باركد پهناي خط/ فاصله خالي براي همه
مجموعه كاراكترهاي مربوط به كد 128 را نشان مي دهد. دقت كنيد كه مجموع پهناي
خطوط در هر يك از كاراكتر ها عددي زوج و مجموع فواصل خالي براي هر كدام از
كاراكترها عددي فرد است. اولين ستون در جدول با عنوان « value » حاوي عددي
است كه براي محاسبه رقم كنترل بكار مي رود.
نحوه محاسبه رقم كنترل
رقم كنترل عبارت است از باقيمانده مجموع ارزش عددي محاسبه شده براي رشته قابل
تبديل تقيسم بر عدد 103 . براي محاسبه مجموع ارزش عددي رشته قابل تبديل مقدار
مربوط به كاراكتر شروع را با حاصلضرب موقعيت هر كاراكتر در مقدار مربوط به آن
جمع مي كنيد و در نهايت عدد حاصل را به 103 تقسيم مي كنيم . باقيمانده بدست
آمده از اين تقسيم مقدار مربوط به كاراكتر رقم كنترل مي باشد كه بايد در
انتهاي كاراكترها و قبل از كاراكتر Stop آورده شود
فرض كنيد بخواهيد عبارت Code 128 را به باركد تبديل كنيد. در صورتي كه
بخواهيد از كاراكتر ست B براي اين منظور استفاده كنيد .
|
حرف |
مقدار |
مقدار مجموع |
كاراكتر شروع كد ست B |
Start B |
104 |
104 |
موقعيت 1 |
C |
35 |
35= 1*35 |
موقعيت 2 |
o |
79 |
158= 2*79 |
موقعيت 3 |
d |
68 |
204= 3*68 |
موقعيت 4 |
e |
69 |
276 = 4*69 |
موقعيت 5 |
|
0 |
0= 5*0 |
موقعيت 6 |
1 |
17 |
102= 6*17 |
موقعيت 7 |
2 |
18 |
126 = 7 * 18 |
موقعيت 8 |
8 |
24 |
192 = 8 * 24 |
جمع كل |
1197 |
11=103/1197 و باقيمانده برابر 64 است . بنابراين رقم كنترل برابر كاراكتري
است كه عدد موجود در ستون مقدار آن برابر64 باشد.
من فونت اين باركد را به صورت يك فونت True Type طراحي كرده ام.
arash barcode 128.ttf يک فونت true type است که کليه کاراکتر ست هاي a,b,c
مربوط به barcode 128 و نيز کاراکتر ست مربوط به بارکد EAN-13 را شامل مي شود. اين
فونت هم اکنون با نرم افزار آب بها براي چاپ بارکد قبوض آب استفاده مي شود . در حال
حاضر اين فونت توسط بسياري از برنامه نويسان در استان هاي مختلف كشور در
حال استفاده مي باشد براي تهيه
فونت مربوط به اين باركد مي توانيد به آدرس
http://www.aliarash.com مراجعه و
يا به ايميل info@aliarash.com مكاتبه نماييد.
در حال حاضر اين فونت توسط بسياري از برنامه نويسان در استان هاي مختلف
كشور در حال استفاده مي باشدبراي دانلود نمونه باركد با كد
كاربري و رمز عبور guest وارد مديريت فايل شده و
نمونه مورد نظر را دانلود كنيد
قيمت فعلي اين فونت به همراه نمونه مثال ها و توابع با احتساب 9 درصد ماليات ارزش افزوده 32700 تومان مي باشد
در صورت تمايل به پرداخت
اينترنتي مي توانيد وجه مورد نظر را به شماره كارت 6274129005473742 به نام
شركت مهندسي رايانه گستر آرش منتقل نماييد
در زيرچند نمونه از باركد هاي ايجاد شده توسط اين فونت آورده شده است. اندازه
فونت باركد براي وضوح بيشتر 36 انتخاب شده است
باركد متناظر با عبارت |
Code Set |
عبارت |
|
C |
012345678910 |
|
B |
012345678910 |
|
B |
Ali Arash |
|
B |
http://www.aliarash.com |
جدول مربوط به
مشخصات باركد 128
|
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 1 1 2
|
|
|
|
|
|
29 |
= |
= |
29 |
3 2 2 2 1 1
|
|
|
|
|
|
30 |
> |
> |
30 |
2 1 2 1 2 3
|
|
|
|
|
|
31 |
? |
? |
31 |
2 1 2 3 2 1
|
|
|
|
|
|
32 |
@ |
@ |
32 |
2 3 2 1 2 1
|
|
|
|
|
|
33 |
A |
A |
33 |
1 1 1 3 2 3
|
|
|
|
|
|
34 |
B |
B |
34 |
1 3 1 1 2 3
|
|
|
|
|
|
35 |
C |
C |
35 |
1 3 1 3 2 1
|
|
|
|
|
|
36 |
D |
D |
36 |
1 1 2 3 1 3
|
|
|
|
|
|
37 |
E |
E |
37 |
1 3 2 1 1 3
|
|
|
|
|
|
38 |
F |
F |
38 |
1 3 2 3 1 1
|
|
|
|
|
|
39 |
G |
G |
39 |
2 1 1 3 1 3
|
|
|
|
|
|
40 |
H |
H |
40 |
2 3 1 1 1 3
|
|
|
|
|
|
41 |
I |
I |
41 |
2 3 1 3 1 1
|
|
|
|
|
|
42 |
J |
J |
42 |
1 1 2 1 3 3
|
|
|
|
|
|
43 |
K |
K |
43 |
1 1 2 3 3 1
|
|
|
|
|
|
44 |
L |
L |
44 |
1 3 2 1 3 1
|
|
|
|
|
|
45 |
M |
M |
45 |
1 1 3 1 2 3
|
|
|
|
|
|
46 |
N |
N |
46 |
1 1 3 3 2 1
|
|
|
|
|
|
47 |
O |
O |
47 |
1 3 3 1 2 1
|
|
|
|
|
|
48 |
P |
P |
48 |
3 1 3 1 2 1
|
|
|
|
|
|
49 |
Q |
Q |
49 |
2 1 1 3 3 1
|
|
|
|
|
|
50 |
R |
R |
50 |
2 3 1 1 3 1
|
|
|
|
|
|
51 |
S |
S |
51 |
2 1 3 1 1 3
|
|
|
|
|
|
52 |
T |
T |
52 |
2 1 3 3 1 1
|
|
|
|
|
|
53 |
U |
U |
53 |
2 1 3 1 3 1
|
|
|
|
|
|
54 |
V |
V |
54 |
3 1 1 1 2 3
|
|
|
|
|
|
55 |
W |
W |
55 |
3 1 1 3 2 1
|
|
|
|
|
|
56 |
X |
X |
56 |
3 3 1 1 2 1
|
|
|
|
|
|
57 |
Y |
Y |
57 |
3 1 2 1 1 3
|
|
|
|
|
|
58 |
Z |
Z |
58 |
3 1 2 3 1 1
|
|
|
|
|
|
59 |
[ |
[ |
59 |
3 3 2 1 1 1
|
|
|
|
|
|
60 |
\ |
\ |
60 |
3 1 4 1 1 1
|
|
|
|
|
|
61 |
] |
] |
61 |
2 2 1 4 1 1
|
|
|
|
|
|
62 |
^ |
^ |
62 |
4 3 1 1 1 1
|
|
|
|
|
|
63 |
_ |
_ |
63 |
1 1 1 2 2 4
|
|
|
|
|
|
64 |
NUL |
` |
64 |
1 1 1 4 2 2
|
|
|
|
|
|
65 |
SOH |
a |
65 |
1 2 1 1 2 4
|
|
|
|
|
|
66 |
STX |
b |
66 |
1 2 1 4 2 1
|
|
|
|
|
|
67 |
ETX |
c |
67 |
1 4 1 1 2 2
|
|
|
|
|
|
68 |
EOT |
d |
68 |
1 4 1 2 2 1
|
|
|
|
|
|
69 |
ENQ |
e |
69 |
1 1 2 2 1 4
|
|
|
|
|
|
70 |
ACK |
f |
70 |
1 1 2 4 1 2
|
|
|
|
|
|
71 |
BEL |
g |
71 |
1 2 2 1 1 4
|
|
|
|
|
|
72 |
BS |
h |
72 |
1 2 2 4 1 1
|
|
|
|
|
|
73 |
HT |
i |
73 |
1 4 2 1 1 2
|
|
|
|
|
|
74 |
LF |
j |
74 |
1 4 2 2 1 1
|
|
|
|
|
|
75 |
VT |
k |
75 |
2 4 1 2 1 1
|
|
|
|
|
|
76 |
FF |
I |
76 |
2 2 1 1 1 4
|
|
|
|
|
|
77 |
CR |
m |
77 |
4 1 3 1 1 1
|
|
|
|
|
|
78 |
SO |
n |
78 |
2 4 1 1 1 2
|
|
|
|
|
|
79 |
SI |
o |
79 |
1 3 4 1 1 1
|
|
|
|
|
|
80 |
DLE |
p |
80 |
1 1 1 2 4 2
|
|
|
|
|
|
81 |
DC1 |
q |
81 |
1 2 1 1 4 2
|
|
|
|
|
|
82 |
DC2 |
r |
82 |
1 2 1 2 4 1
|
|
|
|
|
|
83 |
DC3 |
s |
83 |
1 1 4 2 1 2
|
|
|
|
|
|
84 |
DC4 |
t |
84 |
1 2 4 1 1 2
|
|
|
|
|
|
85 |
NAK |
u |
85 |
1 2 4 2 1 1
|
|
|
|
|
|
86 |
SYN |
v |
86 |
4 1 1 2 1 2
|
|
|
|
|
|
87 |
ETB |
w |
87 |
4 2 1 1 1 2
|
|
|
|
|
|
88 |
CAN |
x |
88 |
4 2 1 2 1 1
|
|
|
|
|
|
89 |
EM |
y |
89 |
2 1 2 1 4 1
|
|
|
|
|
|
90 |
SUB |
z |
90 |
2 1 4 1 2 1
|
|
|
|
|
|
91 |
ESC |
{ |
91 |
4 1 2 1 2 1
|
|
|
|
|
|
92 |
FS |
| |
92 |
1 1 1 1 4 3
|
|
|
|
|
|
93 |
GS |
} |
93 |
1 1 1 3 4 1
|
|
|
|
|
|
94 |
RS |
~ |
94 |
1 3 1 1 4 1
|
|
|
|
|
|
95 |
US |
DEL |
95 |
1 1 4 1 1 3
|
|
|
|
|
|
96 |
FNC 3
|
FNC 3
|
96 |
1 1 4 3 1 1
|
|
|
|
|
|
97 |
FNC 2
|
FNC 2
|
97 |
4 1 1 1 1 3
|
|
|
|
|
|
98 |
SHIFT
|
SHIFT
|
98 |
4 1 1 3 1 1
|
|
|
|
|
|
99 |
CODE C
|
CODE C
|
99 |
1 1 3 1 4 1
|
|
|
|
|
|
100 |
CODE B
|
FNC 4
|
CODE B
|
1 1 4 1 3 1
|
|
|
|
|
|
101 |
FNC 4
|
CODE A
|
CODE A
|
3 1 1 1 4 1
|
|
|
|
|
|
102 |
FNC 1
|
FNC 1
|
FNC 1
|
4 1 1 1 3 1
|
|
|
|
|
|
103 |
Start A
|
Start A
|
Start A
|
2 1 1 4 1 2
|
|
|
|
|
|
104 |
Start B
|
Start B
|
Start B
|
2 1 1 2 1 4
|
|
|
|
|
|
105 |
Start C
|
Start C
|
Start C
|
2 1 1 2 3 2
|
|
|
|
|
|
106 |
Stop |
Stop |
Stop |
2 3 3 1 1 1 2
|
|
|
|
|
|
|