> 【 在 lkk.bbs@bbs.mis.cycu.edu.tw (lkk) 的大作中提到: 】
> : 碁峰出過一本有關寫條碼程式的書, 不過好像是以 c 來討論.
>
> Office97 中的 Access 提供一個條碼控制項,內含十種常見的條碼規格。
>
> 其它資料,請查 help。
模組名稱:條碼處理模組
模組目的:列印與處理條碼資料用。
版 本:1.00
著作日期:86/01/28
技術說明:1.39碼:
(1)起始碼+資料碼+〔檢查碼〕+終止碼。
(2)起始碼與終止碼均為*。
(3)資料碼編號次序為0~9、A~Z、-、.、SP、$、/、+、%
共43種資料。
(4)檢查碼為資料編號值(0~42)累加後除以43取餘數視為資
料(註:檢查碼會視成資料輸入)。
(5)編碼資料(每碼有9條,其中3條為粗,各佔12線。以下各
位元奇數位為黑,偶數位為白,0為細,1為粗)
0 000110100 F 001011000 U 110000001
1 100100001 G 000001101 V 011000001
2 001100001 H 100001100 W 111000000
3 101100000 I 001001100 X 010010001
4 000110001 J 000011100 Y 110010000
5 100110000 K 100000011 Z 011010000
6 001110000 L 001000011 - 010000101
7 000100101 M 101000010 . 110000100
8 100100100 N 000010011 SP 011000100
9 001100100 O 100010010 $ 010101000
A 100001001 P 001010010 / 010100010
B 001001001 Q 000000111 + 010001010
C 101001000 R 100000110 % 000101010
D 000011001 S 001000110 * 010010100
E 100011000 T 000010110
各資料碼之間必須空開一條白線。
2.EAN-13碼:
(1)護線+6個資料碼+中線+5個資料碼+檢查碼+護線 ,
共佔119條線。
(2)資料只能為0~9之數字,連同檢查碼共13碼。
(3)首碼隱藏在左資料的編碼方式,故實際只編出12碼。以下為
各首碼所使用的編碼方式:
0 AAAAAA 1 AABABB 2 AABBAB
3 AABBBA 4 ABAABB 5 ABBAAB
6 ABBBAA 7 ABABAB 8 ABABBA
9 ABBABA
A組編碼方式:
0 0001101 1 0011001 2 0010011
3 0111101 4 0100011 5 0110001
6 0101111 7 0111011 8 0110111
9 0001011
B組編碼方式:
0 0100111 1 0110011 2 0011011
3 0100001 4 0011101 5 0111001
6 0000101 7 0010001 8 0001001
9 0010111
以上各位元0為白,1為黑
(4)護線為101,中線為01010。
(5)右資料編碼方式固定如下:
0 1110010 1 1100110 2 1101100
3 1000010 4 1011100 5 1001110
6 1010000 7 1000100 8 1001000
9 1110100
(6)檢查碼計算方式為1000減去前12碼之奇數碼和與偶數碼和*3
後,除以10取餘數。假設各碼依次為ABCDEFGHIJKLM,則
M = (1000 - (A+C+E+G+I+K) - (B+D+F+H+J+L)*3) % 10
3.EAN-8碼
(1)護線+4個資料碼+中線+3個資料碼+檢查碼+護線 ,
共佔67條線。
(2)資料只能為0~9之數字,連同檢查碼共8碼。
(3)左資料以A組方式編碼,右資料同EAN-13碼。
(4)檢查碼為1000減去前7碼之奇數碼和*3與偶數碼和後,除以
10取餘數。假設各碼依次為ABCDEFGH,則
H = (1000 - (A+C+E+G)*3 - (B+D+F)) % 10
4.UPC-A碼
(1)同EAN-13碼,但首碼必須固定為0。
5.UPC-E碼
(1)左護線+6個資料碼+右護線,共佔51條線。
(2)資料只能為0~9之數字,連同檢查碼共8碼。
(3)資料碼依檢查碼有不同編碼方式,各檢查碼對應的資料編
碼方式如下:
0 BBBAAA 1 BBABAA 2 BBAABA
3 BBAAAB 4 BABBAA 5 BAABBA
6 BAAABB 7 BABABA 8 BABAAB
9 BAABAB
AB兩組編碼方式同EAN-13碼。
(4)檢查碼計算方式如下:
0ABCDEFM : M = (1000 - (A+D+F) - (B+C+E)*3) % 10
F = 0~2
0ABCDE3M : M = (1000 - (A+C+D) - (B+E)*3) % 10
0ABCDE4M : M = (1000 - (A+C) - (B+D+E)*3) % 10
0ABCDEFM : M = (1000 - (A+C+E) - (B+D+F)*3) % 10
F = 5~9
(5)左護線101,右護線010101。
6.交錯式25碼
(1)起始碼+資料碼+終止碼。
(2)資料只能為0~9之數字,且必須偶數個,不足時前面補0。
(3)編碼資料(每碼有5條,其中2條為粗,各佔7線,位元0為細,
1為粗):
0 00110 1 10001 2 01001
3 11000 4 00101 5 10100
6 01100 7 00011 8 10010
9 01010
實際編碼時,以2個資料之位元交錯放置,在奇數位者為黑,
偶數位者為白。
(4)起始碼0000,終止碼100。
7.CODABAR碼(又稱NW-7碼)
(1)起始碼+資料碼+終止碼。
(2)資料只能為0~9、/+-*$.:等資料,且連同起始碼和終止碼,
最長為32個資料。起始碼和終止碼必須為A~D。
(3)編碼資料(每碼有7條,以下各位元奇數位為黑,偶數位為
白,0為細,1為粗)
0 0000011 1 0000110 2 0001001
3 1100000 4 0010010 5 1000010
6 0100001 7 0100100 8 0110000
9 1001000 $ 0011000 - 0001100
A 0011010 B 0101001 C 0001011
D 0001110 + 0010101 . 1010100
: 1000101 / 1010001 * 1010101
各資料碼之間必須空開一條白線。
8.128碼
(1)起始碼+資料碼+終止碼+〔檢查碼〕。
(2)資料可為ASCII 0~127之字元,長度最長30個資料。
(3)檢查碼略(一般不加)。
(4)有三種編碼方式:
A類:ASCII 0~95。
B類:ASCII 32~127。
C類:數字00~99。
其中ASCII 0~31對應編碼索引為64~95,ASCII 32~95對
應編碼索引為0~63,ASCII 96~127對應編碼索引為64~95,
C類數字直接對應至編碼索引。
(5)各編碼索引對應之編碼值如下(0表白線,1表黑線,各佔
11條線):
00 11011001100 01 11001101100 02 11001100110
03 10010011000 04 10010001100 05 10001001100
06 10011001000 07 10011000100 08 10001100100
09 11001001000 10 11001000100 11 11000100100
12 10110011100 13 10011011100 14 10011001110
15 10111001100 16 10011101100 17 10011100110
18 11001110010 19 11001011100 20 11001001110
21 11011100100 22 11001110100 23 11101101110
24 11101001100 25 11100101100 26 11100100110
27 11101100100 28 11100110100 29 11100110010
30 11011011000 31 11011000110 32 11000110110
33 10100011000 34 10001011000 35 10001000110
36 10110001000 37 10001101000 38 10001100010
39 11010001000 40 11000101000 41 11000100010
42 10110111000 43 10110001110 44 10001101110
45 10111011000 46 10111000110 47 10001110110
48 11101110110 49 11010001110 50 11000101110
51 11011101000 52 11011100010 53 11011101110
54 11101011000 55 11101000110 56 11100010110
57 11101101000 58 11101100010 59 11100011010
60 11101111010 61 11001000010 62 11110001010
63 10100110000 64 10100001100 65 10010110000
66 10010000110 67 10000101100 68 10000100110
69 10110010000 70 10110000100 71 10011010000
72 10011000010 73 10000110100 74 10000110010
75 11000010010 76 11001010000 77 11110111010
78 11000010100 79 10001111010 80 10100111100
81 10010111100 82 10010011110 83 10111100100
84 10011110100 85 10011110010 86 11110100100
87 11110010100 88 11110010010 89 11011011110
90 11011110110 91 11110110110 92 10101111000
93 10100011110 94 10001011110 95 10111101000
96 10111100010 97 11110101000 98 11110100010
99 10111011110
(6)起始碼 (11線)
A類 = 11010000100
B類 = 11010010000
C類 = 11010011100
終止碼 (13線) = 1100011101011
(7)中途更換編碼類別(故可多種編碼方式):
轉A類 = 11101011110
轉B類 = 10111101110
轉C類 = 10111011110
參考文獻:"條碼製作入門與實例應用",徐紹文編著,靖宇。
測試形式:1.39碼:
-$01234.56789%
THIS AT+BEDCFG
JKLMNOPQRUVWXYZ/
2.EAN-13碼:
001234501234
167081256789
290341513579
323678424680
459670101234
582390456789
615672313579
748596024680
871823901234
904516256789
3.EAN-8碼
0123678
4567012
8901345
2345901
4.UPC-A碼 - 同EAN-13碼。
5.UPC-E碼
00000000
01011111
02620022
03034933
04442044
05550555
06680466
07710377
08840288
09970199
6.交錯式25碼
123456789
1032547698
7.CODABAR碼(又稱NW-7碼)
0123456789
*$-+.:/ (86/07/07測試結果,*:/三個字掃不出來)
8.128碼
ABCDEFGHIJKLMNOPQRSTUVWXYZ`ab
6465661!"#$%&'()*+,-./67686970
cdefghijklmnopqrstuvwxyz{|}~
95969798997172737475767778790
808182838485868788899091929394
2 3:4;5<6=7>8?9@[\]^_
--
青衫詩客 - 小邱.