코드 128

Code 128
코드 128의 "RI 476 394 652 CH"를 코드화한 스위스 우편 바코드(B&C)

코드 128은 ISO/IEC 15417:[1]2007에서 정의된 고밀도 선형 바코드 기호입니다.영숫자 또는 숫자만의 바코드에 사용됩니다.ASCII 의 128 문자 모두를 부호화할 수 있습니다.또, ISO/IEC 8859-1 [citation needed]정의되어 있는 Latin-1 문자도 확장 기호(FNC4)를 사용해 부호화할 수 있습니다.이것은 일반적으로 코드 39와 같은 다른 방법들에 비해 더 콤팩트한 바코드를 낳는다. 특히 텍스트가 대부분 숫자를 포함하고 있는 경우에는 더욱 그렇다.

GS1-128(이전의 UCC/EAN-128)은 코드 128의 서브셋으로, 서플라이 체인(supply-chain)의 용기 및 팔레트 레벨의 제품 식별 코드로 전 세계에서 폭넓게 사용되고 있습니다.

사양

"Code 128 sections"
바코드 개략도(코드 128B).
1: Quiet Zone, 2: Start 코드, 3: 데이터, 4: 대역폭, 5: Stop 코드

코드 128 바코드는 7개의 섹션으로 구성되어 있습니다.

  1. 저소음 영역
  2. 시작 기호
  3. 부호화된 데이터
  4. 체크 기호(필수)
  5. 정지 기호
  6. 최종 막대(종종 중지 기호의 일부로 간주됨)
  7. 저소음 영역

체크 심볼은 모든 심볼의 가중치 합(모듈로 103)에서 계산됩니다.

서브타입

코드 128에는 108개의 심볼(데이터 심볼 103개, 시작 심볼 3개, 정지 심볼 2개)이 포함됩니다.각 기호는 폭이 다양한 검은색 막대 3개와 흰색 공간 3개로 구성됩니다.모든 폭은 기본 "모듈"의 배수입니다.각 바의 폭은 1~4모듈이며, 기호는 고정폭입니다.검은색 바 3개와 흰색 바 3개의 폭 합계는 11모듈입니다.

정지 패턴은 두 개의 겹치는 기호로 구성되며 4개의 막대가 있습니다.정지 패턴은 양방향 스캔을 허용합니다.정지 패턴을 왼쪽에서 오른쪽으로 읽으면(2-모듈 바 뒤에 있음) 정지 기호가 인식됩니다.정지 패턴을 오른쪽에서 왼쪽으로 읽으면 역정지 기호(2-모듈 막대 뒤에 있음)가 인식됩니다.그러면 스캐너가 역방향 중지 기호를 보고 2-모듈 막대를 건너뛰고 나머지 바코드를 역방향으로 읽어야 한다는 것을 알게 됩니다.

코드 128은 이름에도 불구하고 128개의 고유한 기호를 가지고 있지 않기 때문에 128개의 코드 포인트를 직접 나타낼 수 없습니다.128 ASCII 값을 모두 나타내려면 , 3 개의 코드 세트(A, B, C)로 이동합니다.코드 세트 A와 B는 모두 128자의 ASCII 문자를 커버합니다.코드 세트 C 는, 디짓스트링을 효율적으로 부호화하기 위해서 사용됩니다.초기 부분 집합은 적절한 시작 기호를 사용하여 선택합니다.각 코드 세트 내에서 103개의 데이터 코드 포인트 중 일부는 다른 2개의 코드 세트 중 하나로 이동하기 위해 예약되어 있다.시프트는 코드 세트 A와 B에서는 코드 포인트98과 99, 코드 세트 A와 C에서는 100, 코드 세트 B와 C에서는 101을 사용하여 이들 사이를 전환합니다).

  • 128A(코드 세트 A) – ASCII 문자 00 ~95(0~9, A~Z 및 제어 코드), 특수 문자 및 FNC 1 ~4
  • 128B(코드 세트 B)– ASCII 문자 32 ~127(0~9, A~Z, a~z), 특수 문자 및 FNC 1 ~4
  • 128C(코드 세트 C)– 00 ~ 99 (1개의 코드 포인트로2자리 인코딩)및 FNC1

코드 128의 좌우에 있는 Quiet 존의 최소 폭은 10x입니다.x는 모듈의 최소 폭입니다.바코드의 왼쪽과 오른쪽에는 반드시 입력해야 합니다.

시작/정지 및 인코딩된 데이터

바코드의 각 기호는 3개의 막대와 3개의 공백으로 구성됩니다.각 막대 또는 공간은 너비가 1, 2, 3, 4 단위이고 막대 폭의 합계는 짝수(4, 6 또는 8 단위), 공간의 폭의 합계는 홀수(3, 5 또는 7 단위), 기호당 총 11 단위여야 합니다.예를 들어 ASCII 문자 "0"을 인코딩하면 10011101100으로 볼 수 있습니다.여기서 1의 시퀀스는 막대이고 0의 시퀀스는 공백입니다.1은 바코드에서 가장 얇은 줄이 될 것입니다.3개의 1's in sequence(111)는 단일 1 bar보다 3배 두꺼운 막대를 나타냅니다.

108개의 가능한 11유닛 폭 기호가 있으며 코드에는 가능한 모든 기호가 사용됩니다.두 개의 기호는 정지(바코드 끝) 표시, 정지 및 후진 정지에 사용됩니다.두 개의 스톱 기호는 항상 2개의 유닛 바 뒤에 13개의 유닛 롱 스톱 패턴을 형성하기 때문에 특별합니다.정지 패턴을 왼쪽에서 오른쪽으로 읽으면 정지 기호(2단위 막대 뒤에 있음)이고, 정지 패턴을 오른쪽에서 왼쪽으로 읽으면 역정지 기호(2단위 막대 뒤에 읽음)입니다.아니요.

자릿수계산확인

체크 디짓은 가중 모듈로-103 체크섬입니다.이 값은 시작 코드 '값'을 각 기호 '값'의 곱에 바코드 문자열의 위치를 곱하여 계산됩니다.시작 기호와 첫 번째로 인코딩된 기호는 위치 1에 있습니다.다음으로 제품의 합계를 모듈로 103으로 환원한다.그런 다음 나머지는 103개의 비 딜리미터 기호 중 하나로 다시 변환되어(아래에 제공된 지침에 따라) 정지 기호 바로 앞에 바코드에 추가됩니다.

예를 들어 다음 표에서는 코드 128 바리안트A 체크섬 값이 영숫자 문자열 PJJ123C에 대해 계산됩니다.

코드 가치 위치 값 ×
위치
시작 코드 A 103 1 103
P 48 1 48
J 42 2 84
J 42 3 126
1 17 4 68
2 18 5 90
3 19 6 114
C 35 7 245
878
나머지 mod 103 54

체크 기호를 계산할 때 시프트 기호 및 코드 스위치 기호는 바코드의 다른 기호와 동일하게 취급됩니다.체크섬은 어떤 코드 세트가 활성화되어 있는지에 관계없이 기호 값에 따라 계산됩니다.예를 들어 코드 세트 C 값 "33"과 코드 세트 B 값 "A"는 모두 코드 128 값 "33"으로 간주되며, 체크 디지트는 바코드 내 심볼 위치의 33배 값에 기초하여 계산된다.

FNC4를 사용한 상위(160~255) 문자 인코딩

코드 세트 A 및 B에만 있는 특수 기호 FNC4("기능 4")는 코드 128 [2]바코드의 모든 라틴-1(ISO-8859-1) 문자를 인코딩하는 데 사용할 수 있습니다.이 기능은 널리 지원되지 않으며 GS1-128에서는 사용되지 않습니다.[3][4]문자열에 1개의 FNC4가 존재하는 경우 다음 기호가 통상대로 ASCII로 변환되고 128이 ASCII 값에 추가됩니다.(다음 기호가 시프트인 경우 두 번째 기호가 문자를 획득하는 데 사용됩니다.)2개의 FNC4가 연속적으로 사용되는 경우 문자열 끝 또는 다른 FNC4 쌍까지 다음 모든 문자가 동일하게 취급됩니다.2개의 FNC4 사이에서는, 1개의 FNC4 를 사용해 다음의 문자가 표준 [5]ASCII 가 되는 것을 나타냅니다.

바코드 폭

Code128은 각 기호에 대해 6개의 교대 막대 및 공간(각 3개)의 조합을 지정합니다.따라서 각 기호는 막대로 시작하여 공백으로 끝납니다.바코드 폰트에서는 일반적으로 최종 막대가 정지 기호와 조합되어 보다 넓은 정지 패턴을 형성합니다.다음 표에서는 각 막대와 각 기호의 공백에 연결된 너비에 대해 자세히 설명합니다.각 막대 또는 공간의 폭은 1, 2, 3 또는 4 단위(모듈)일 수 있습니다.위의 예를 사용하여 'A'는 패턴 10100011000 또는 아래 표에서 폭 111323으로 표시됩니다.

폭 값은 패턴에서 왼쪽부터 시작하여 1의 각 런과 0의 각 런의 길이를 카운트하여 구합니다.항상 6개의 런이 있고 이 6개의 런의 길이가 폭 값을 형성합니다.예를 들어 패턴 10100011000을 사용하면 실행 길이는 1(자리 1), 1(자리 0), 1(자리 1), 3(자리 0), 2(자리 1), 3(자리 0)입니다.각 런의 길이만 보고하면 1, 1, 3, 2, 3이 제공되므로 폭 값은 111323이 됩니다.

코드 128
가치 16진수치 128A 128B 128C 글꼴 위치
(공통/비공통/바코드소프트)
막대/공간
코드 라틴어-1 양식
0 00 공간 공간 00 32, 194 또는 207 / 212 / 252 or, or 또는 ï / ü 11011001100 212222
1 01 ! ! 01 33 ! 11001101100 222122
2 02 " " 02 34 " 11001100110 222221
3 03 # # 03 35 # 10010011000 121223
4 04 $ $ 04 36 $ 10010001100 121322
5 05 % % 05 37 % 10001001100 131222
6 06 & & 06 38 & 10011001000 122213
7 07 ' ' 07 39 ' 10011000100 122312
8 08 ( ( 08 40 ( 10001100100 132212
9 09 ) ) 09 41 ) 11001001000 221213
10 0a * * 10 42 * 11001000100 221312
11 0b + + 11 43 + 11000100100 231212
12 0c , , 12 44 , 10110011100 112232
13 0d - - 13 45 - 10011011100 122132
14 0e . . 14 46 . 10011001110 122231
15 0f / / 15 47 / 10111001100 113222
16 10 0 0 16 48 0 10011101100 123122
17 11 1 1 17 49 1 10011100110 123221
18 12 2 2 18 50 2 11001110010 223211
19 13 3 3 19 51 3 11001011100 221132
20 14 4 4 20 52 4 11001001110 221231
21 15 5 5 21 53 5 11011100100 213212
22 16 6 6 22 54 6 11001110100 223112
23 17 7 7 23 55 7 11101101110 312131
24 18 8 8 24 56 8 11101001100 311222
25 19 9 9 25 57 9 11100101100 321122
26 1a : : 26 58 : 11100100110 321221
27 1b ; ; 27 59 ; 11101100100 312212
28 1c < > < > 28 60 < > 11100110100 322112
29 1d = = 29 61 = 11100110010 322211
30 1e > > 30 62 > 11011011000 212123
31 1f ? ? 31 63 ? 11011000110 212321
32 20 @ @ 32 64 @ 11000110110 232121
33 21 A A 33 65 A 10100011000 111323
34 22 B B 34 66 B 10001011000 131123
35 23 C C 35 67 C 10001000110 131321
36 24 D D 36 68 D 10110001000 112313
37 25 E E 37 69 E 10001101000 132113
38 26 F F 38 70 F 10001100010 132311
39 27 G G 39 71 G 11010001000 211313
40 28 H H 40 72 H 11000101000 231113
41 29 I I 41 73 I 11000100010 231311
42 2a J J 42 74 J 10110111000 112133
43 2b K K 43 75 K 10110001110 112331
44 2c L L 44 76 L 10001101110 132131
45 2D M M 45 77 M 10111011000 113123
46 2e N N 46 78 N 10111000110 113321
47 2f O O 47 79 O 10001110110 133121
48 30 P P 48 80 P 11101110110 313121
49 31 Q Q 49 81 Q 11010001110 211331
50 32 R R 50 82 R 11000101110 231131
51 33 S S 51 83 S 11011101000 213113
52 34 T T 52 84 T 11011100010 213311
53 35 U U 53 85 U 11011101110 213131
54 36 V V 54 86 V 11101011000 311123
55 37 W W 55 87 W 11101000110 311321
56 38 X X 56 88 X 11100010110 331121
57 39 Y Y 57 89 Y 11101101000 312113
58 3a Z Z 58 90 Z 11101100010 312311
59 3b [ [ 59 91 [ 11100011010 332111
60 3c \ \ 60 92 \ 11101111010 314111
61 3D ] ] 61 93 ] 11001000010 221411
62 3e ^ ^ 62 94 ^ 11110001010 431111
63 3f _ _ 63 95 _ 10100110000 111224
64 40 없음 ` 64 96 ` 10100001100 111422
65 41 SOH a 65 97 a 10010110000 121124
66 42 STX b 66 98 b 10010000110 121421
67 43 ETX c 67 99 c 10000101100 141122
68 44 전원 d 68 100 d 10000100110 141221
69 45 ENQ e 69 101 e 10110010000 112214
70 46 ACK f 70 102 f 10110000100 112412
71 47 g 71 103 g 10011010000 122114
72 48 BS h 72 104 h 10011000010 122411
73 49 HT i 73 105 i 10000110100 142112
74 4a LF j 74 106 j 10000110010 142211
75 4b VT k 75 107 k 11000010010 241211
76 4c FF l 76 108 l 11001010000 221114
77 4D CR m 77 109 m 11110111010 413111
78 4e 그렇게 n 78 110 n 11000010100 241112
79 4층 SI o 79 111 o 10001111010 134111
80 50 DLE p 80 112 p 10100111100 111242
81 51 DC1 q 81 113 q 10010111100 121142
82 52 DC2 r 82 114 r 10010011110 121241
83 53 DC3 s 83 115 s 10111100100 114212
84 54 DC4 t 84 116 t 10011110100 124112
85 55 NAK u 85 117 u 10011110010 124211
86 56 동기 v 86 118 v 11110100100 411212
87 57 ETB w 87 119 w 11110010100 421112
88 58 할 수 있다 x 88 120 x 11110010010 421211
89 59 전자파 y 89 121 y 11011011110 212141
90 5a 후보선수 z 90 122 z 11011110110 214121
91 5b ESC { 91 123 { 11110110110 412121
92 5c FS 92 124 10101111000 111143
93 5d GS } 93 125 } 10100011110 111341
94 5e RS ~ 94 126 ~ 10001011110 131141
95 5f 미국 95 195 / 200 / 240 / / / / ð 10111101000 114113
96 60 FNC 3 FNC 3 96 196 / 201 / 241 ä / / / ñ 10111100010 114311
97 61 FNC 2 FNC 2 97 197 / 202 / 242 / / / / ò 11110101000 411113
98 62 시프트 B 시프트 A 98 198 / 203 / 243 EE / EER / o 11110100010 411311
99 63 코드 C 코드 C 99 199 / 204 / 244 ç / ì / o 10111011110 113141
100 64 코드 B FNC 4 코드 B 200 / 205 / 245 / / í / õ 10111101110 114131
101 65 FNC 4 코드 A 코드 A 201 / 206 / 246 E / î / ö 11101011110 311141
102 66 FNC 1 FNC 1 FNC 1 202 / 207 / 247 ê / ï / ÷ 11110101110 411131
103 67 시작 코드 A 203 / 208 / 248 ë / ð / ø 11010000100 211412
104 68 시작 코드 B 204 / 209 / 249 ìI / ñ / ù 11010010000 211214
105 69 시작 코드 C 205 / 210 / 250 í / ò / u 11010011100 211232
106 6a 이제 그만 11000111010 233111
리버스 스톱 11010111000 211133
정지 패턴(7개의 막대/스페이스) 206 / 211 / 251 î / / / û 1100011101011 2331112

"코드 A", "코드 B" 및 "코드 C" 기호는 모두 해당하는 하위 코드(128A, 128B 또는 128C)에 따라 해석됩니다."Shift" 기호는 하위 코드 A와 B 사이에서 단일 다음 기호 해석을 전환합니다.

부호화된 ASCII 문자는 실제 사용되는 바코드 폰트에 따라 달라집니다.특히 값 0과 값 95 이상의 ASCII 문자를 설치하는 글꼴에서 다르게 정의할 수 있습니다.

FNCx 코드는 특수한 목적으로 사용됩니다.바코드의 선두에 있는 FNC1은 GS1-128 바코드를 나타냅니다.이 바코드는 Uniform Code Council에 의해 할당된2-3자리 또는 4자리 어플리케이션 ID로 시작됩니다.이것에 의해, 다음의 숫자가 설명됩니다.예를 들어 어플리케이션 식별자 421은 ISO 3166-1 수치 국가 코드 및 배송지 우편 번호가 이어지는 것을 나타냅니다.따라서 백악관미국 우편번호는 일반적으로 "(421) 840 20500"으로 인쇄되지만 실제로는 ""로 코딩됩니다.[Start C] [FNC1] 42 18 40 20 50 [Code A] 16 [Check symbol 92] [Stop]"

의 우편 번호의 숫자 계산을 확인합니다. 예:

가치 체중 무게 × 값
시작 C 105 1 105
FNC1 102 1 102
42 42 2 84
18 18 3 54
40 40 4 160
20 20 5 100
50 50 6 300
코드 A 101 7 707
0 16 8 128
합계 = 1740
1740 Mod 103 = 92

유용성

최종 사용자의 경우 외부 응용 프로그램에서 바코드 이미지를 생성하거나 글꼴 기반 바코드 솔루션을 통해 코드 128 바코드를 생성할 수 있습니다.두 솔루션 모두 체크 디지트를 계산하고 바코드를 작성하기 위해 응용 프로그램 또는 응용 프로그램 추가를 사용해야 합니다.

바코드 길이 최적화

코드 세트 C는 2자리 숫자를 나타내기 위해 하나의 코드 기호를 사용하기 때문에 텍스트에 숫자만 포함되어 있으면 일반적으로 바코드가 짧아집니다.단, 문자열이 몇 자리만 포함되거나 숫자가 아닌 문자와 혼합되어 있는 경우 코드 세트A 또는 B보다 콤팩트한 코드가 항상 생성되는 것은 아닙니다.코드 세트 C를 사용하면 두 자리 수당 하나의 기호가 저장되지만 세트 입력 및 종료에는 모드 전환 기호가 필요합니다.따라서 연속되는 숫자가 충분한 경우에만 사용할 수 있습니다.예를 들어 문자열 "X00Y"를 코드 세트 A 또는 B로 인코딩하려면 7개의 코드 기호가 필요합니다.[Start B] 56 16 16 57 [checksum] [Stop]코드 세트 C 를 「X00Y」에 사용하는 경우는, 코드 8 기호가 길어집니다( ).[Start B] 56 [Code C] 00 [Code B] 57 [checksum] [Stop]).

코드 세트 C 를 사용하는 것은, 다음의 조건에서만 유효합니다.

자릿수 위치 연속 자릿수
데이터의 개시 4+
데이터의 끝 4+
데이터 중간(코드 세트 A 또는 B의 기호로 둘러싸여 있음) 6+
전체 데이터 2 또는 4+ 중 하나(3은 제외)

문자열 끝에 짝수 자리수가 남을 때까지 코드 세트 C로의 이행을 지연시키면 추가 심볼을 피할 수 있습니다.문자열 "...01234"에 대해 생각해 봅시다.지연 스위치로 인해... 0 [Code C] 12 34 [checksum] [Stop]하지만 조기 전환은... [Code C] 01 23 [Code A] 4 [checksum] [Stop]를 클릭합니다.[6]

예를 들어 문자열 "098x1234567y23"을 지정하면 코드 세트 C를 사용하여 바코드 길이를 줄이려면 문자열의 중간 부분에 적용해야 합니다.문자열의 시작 부분과 끝 부분의 경우 코드 세트 C로 전환하는 것은 유효하지 않습니다.문자열 중간에 홀수 자릿수가 있으므로 홀수 자릿수는 다른 코드를 사용해야 합니다.단, 이것이 처음이든 마지막이든 상관없습니다.어느 경우든 16개의 기호가 필요합니다.[Start B] 0 9 8 x 1 [Code C] 23 45 67 [Code B] y 2 3 [checksum] [Stop], 또는[Start B] 0 9 8 x [Code C] 12 34 56 [Code B] 7 y 2 3 [checksum] [Stop].

일반적인 레이저 스캐너와 같이 바코드 이미지를 읽기 위해 전체 바코드 이미지를 한 번에 감지해야 하는 바코드 판독기를 사용할 경우 결과 바코드의 길이를 최적화하는 것이 중요합니다.바코드가 길수록 바코드 이미지에서 레이저 바코드 리더의 거리가 길어져야 하므로 일부 임계값 길이/거리를 초과하면 판독이 어렵거나 불가능합니다.

최적의 인코딩은 동적 프로그래밍 [7]알고리즘을 사용하여 찾을 수 있습니다.

레퍼런스

  1. ^ "ISO/IEC 15417:2007 - Information technology -- Automatic identification and data capture techniques -- Code 128 bar code symbology specification". www.iso.org. Retrieved 2018-02-15.
  2. ^ ISO 15417 Annex F가 분명합니다.
  3. ^ "Code 128 Explained". Softmatic GmbH. Retrieved 2017-01-21. In principle non-ASCII characters like German umlauts (e.g. ÄÖÜ) can be encoded in a Code 128 symbol by using a special character (FNC4). However, this feature is not widely supported. Using a 2D barcode symbology like Aztec or Datamatrix with dedicated support for non-ASCII data might be a better choice.
  4. ^ GS1 일반사양(2006년1월~버전 7.0), 섹션 5.3.1.1 GS1-128 심볼로지 특성: "ASCII 값이 128~255인 문자는 코드 128 심볼로 인코딩될 수 있습니다.FNC4(Function 4 Character)가 액세스한 ASCII 값이 128~255인 문자는 향후 사용을 위해 예약되어 있으며 GS1-128 바코드 기호에는 사용되지 않습니다."
  5. ^ "TBarcode1D_Code128". Han-soft corporation. Retrieved 2017-01-21. If a single "FNC 4" character is used, indicates the following data character in the symbol is an extended ASCII character. A 'SHIFT' character may follow the 'FNC 4' character if it is necessary to change character subset for the following data character. Subsequent data characters revert to the standard ASCII character set. If two consecutive 'FNC4' characters are used, all following data characters are extended ASCII characters until two further consecutive 'FNC4' characters are encountered or the end of the symbol is reached. If during this sequence of extended encodation a single "FNC4" character is encountered it is used to revert to standard ASCII encodation for the next data character only. 'SHIFT' and character subset characters shall have their normal effect during such a sequence.
  6. ^ GS1 일반 사양, 버전 13, 제1호, 2013년 1월 - 7.7 섹션.시작, 코드 세트 및 이동 기호를 사용하여 기호 길이 최소화(정보), 268~269페이지.이 섹션에서는 압축 전략에 대해 설명합니다.
  7. ^ Skiena, Steven S. (2010). "8.9 War Story: Text Compression for Bar Codes". The Algorithm Design Manual (2nd ed.). ISBN 1-849-96720-2. dynamic programming led to an 8% tighter encoding on average.

외부 링크

샘플코드

  • ZXing – Java(코어 프로젝트) 버전으로 제공되는 멀티플랫폼 오픈 소스 바코드 스캐너/제너레이터 및 ActionScript, C++, C#, ObjectiveC 및 Ruby 포트.
  • Python 바코드 128 – 이 코드는 상자를 1픽셀 폭으로 그립니다.선을 긋는 짧은 줄의 긴 줄 바코드에서 수정한 것 같습니다."블랙 박스"는 "화이트 박스"와 같은 크기여야 합니다.
  • GenCode128 – Code128의 C# 소스 코드 무료 구현.거의 모든 기능이 구현되어 있지만 100% 완벽하지는 않습니다.
  • 바코드1DTools Ruby Gem – 코드 128을 포함한 많은 1D 바코드 심볼용 루비 소스 코드.
  • Perl 바코드 생성 코드– 코드 128을 포함한 많은 1D 바코드 심볼용 Perl 소스 코드.
  • 바코드:: Code128 : Free Perl 바코드 생성 모듈.
  • GOCR – 코드 128 인식 무료 OCR.
  • 바코드 코드 128 – 코드 128의 무료 자바스크립트 소스 코드 구현.
  • Barcode4J – Code128 및 기타 표준 바코드를 구현한 무료 Java API.
  • JavaScript Code 128 – Code128 및 기타 선형 바코드의 오픈 소스 JavaScript 구현.
  • 코드 128 바코드의 작성을 소개합니다.텍스트를 코드 128 바코드로 변환하기 위한 가이드입니다.Lazarus(오픈소스, 멀티플랫폼 GUI Pascal)으로 작성되었지만 일반적으로 사용됩니다.