VB.NET 2008/VB - 인쇄

바코드 인쇄 - 바코드(Barcode) 개요

본클라쓰 2012. 4. 5. 17:31

 

바코드는 컴퓨터가 판독할 수 있도록 고안된 굵기가 다른 흑백 마대로 조합시켜 만든 코드로, 주로 제품의 포장지에 인쇄된다. 이런 전통적인 형태의 바코드를 선형(1차원) 바코드라고 한다. 그러나 이 방법으로는 많은 정보를 담기 어렵기 때문에 매트릭스(2차원) 코드가 개발되었으며, 육각형이나 사각형 배열의 점으로 이루어져 있다. 매트릭스 코드는 엄밀히 말해 바코드가 아니지만 흔히 2차원 바코드로 일컬어진다. 현재 제품 고유 번호를 나타내는 바코드가 대부분의 제품 포장지에 인쇄되어 계산대에 널리 활용되고 있다.

 

RFID 기술은 칩 하나에 가격이 500원 정도이지만 바코드는 5원 수준으로 거의 돈이 들지 않기 때문에, 지속적인 연구에도 불구하고 RFID가 바코드를 대체하지는 못하고 있다.

 

 

 

 

 

바코드는 장단점

 

상품의 종류를 나타내거나, 점포 등에서 매출정보, 도서관의 도서 관리 등 여러 가지 용도로 사용할 수 있으며, 종이 외에도 다양한 재질에 인쇄할 수 있으며, 원하는 정보에 빨리 접근할 수 있다는 장점을 가지고 있다. 또한 일부가 손상되더라도 다른 부분을 읽어서 정상적인 정보를 얻을 수 있다는 것이다. 다만, 바코드는 정보 용량에 한계가 있으므로 바코드가 붙어 있는 물건에 대한 정보를 충분히 알 수 없다는 단점을 가지고 있다. 이런 한계를 보완하기 위해 최근 2차원 바코드가 개발되었다. 2차원 바코드는 기존의 바코드와 큰 차이는 없으나, 기존의 선형 바코드에서 흑백 네모 모양을 모자이크식으로 배열하는 방식으로 종류에 따라 약 4천 바이트까지 코드화할 수 있기 때문에, 더 많은 정보를 담을 수 있게 되었다.

 

 

 

부호화 방법

 

바코드는 부호화 방법에 따라 구분된다. 부호화 방법은 바코드가 나타내는 원문의 한 자리 숫자나 한 글자를 흑백 막대의 조합으로 표현하는 방법을 비롯해 바코드의 시작과 끝, 체크섬 등을 제공한다. 부호화 방법은 대개 크게 두 가지 기준에 의해 구분된다.

 

1. 연속 바코드와 불연속 바코드

 

연속 바코드에서 숫자나 글자를 나타내는 부호는 연속해 있으며, 이를 구분하기 위해 처음과 끝이 다르다. (예: 흑으로 시작해서 백으로 끝나거나 백으로 시작해서 흑으로 끝남). 반면에 불연속 바코드에서 숫자나 글자를 나타내는 부호는 모두 떨어져 있으며 처음과 끝이 모두 흑생인 경우가 대부분이다. 불연속 바코드에서 한 자리 숫자나 한 글자 사이의 간격은 제한이 없다.

 

2. 두 폭 바코드와 여러 폭 바코드

 

두 폭 바코드에서 흑색 막대나 백색 막대의 너비는 좁거나 넓은 두 가지로 구분된다. 즉 넓은 막대가 좁은 막대에 대해 얼마나 넓은지는 아무런 의미가 없다. 그러나 여러 폭 바코드에서 모든 막대의 너비는 좁은 막대의 정수배이다. 여러 폭 바코드에서 좁은 막대의 너비를 모듈이라고 한다. 예를 들어 네 폭 바코드는 1,2,3,4 모듈 막대로 이루어진다.

 

 

 

바코드의 종류

 

 부호화  연속/불연속  폭 구분  쓰임 
 Code 11  불연속   두 폭  전화
 Code 39   불연속   두 폭  
 Code 93  연속  여러 폭  
 Code 128  연속  여러 폭  
 UPC  연속  여러 폭  
 EAN 8  연속  여러 폭  
 EAN 13  연속  여러 폭  

 

 

 

바코드 인코딩 방법

 

바코드는 하나의 문자에 해당하는 코드바들로 구성된다. 다음 그림은 Code 39의 지정된 문자열에 해당하는 코드바들이다.

 

 

 

바의 종류는 넓은 검은색 바, 가는 검은색 바, 넓은 흰색 바, 넓은 가는 바 이렇게 네 종류를 구분할 수 있다. 이 네개의 바를 조합하여 하나의 문자를 표현한다.

 

B : Wide - Black

b : Narrow - Black

W : Wide - White

w : narrow - White

 

만약, 영문자 'A'를 표현하는 바코드를 바를 나타낼 때는 'BbbwbB'로 나타낼 수 있다. 각 문자는 다음과 같이 표현할 수 있다.

 

        ' 숫자
        Barcode(48) = "bbwBBb"   '0
        Barcode(49) = "BbwbbB"   '1
        Barcode(50) = "bBwbbB"   '2
        Barcode(51) = "BBwbbb"   '3
        Barcode(52) = "bbwBbB"   '4
        Barcode(53) = "BbwBbb"   '5
        Barcode(54) = "bBwBbb"   '6
        Barcode(55) = "bbwbBB"   '7
        Barcode(56) = "BbwbBb"   '8
        Barcode(57) = "bBwbBb"   '9

        ' 영문자
        Barcode(65) = "BbbwbB"      'A
        Barcode(66) = "bBbwbB"      'B
        Barcode(67) = "BBbwbb"      'C
        Barcode(68) = "bbBwbB"      'D
        Barcode(69) = "BbBwbb"      'E
        Barcode(70) = "bBBwbb"      'F
        Barcode(71) = "bbbwBB"      'G
        Barcode(72) = "BbbwBb"      'H
        Barcode(73) = "bBbwBb"      'I
        Barcode(74) = "bbBwBb"      'J
        Barcode(75) = "BbbbwB"      'K
        Barcode(76) = "bBbbwB"      'L
        Barcode(77) = "BBbbwb"      'M
        Barcode(78) = "bbBbwB"      'N
        Barcode(79) = "BbBbwb"      'O
        Barcode(80) = "bBBbwb"      'P
        Barcode(81) = "bbbBwB"      'Q
        Barcode(82) = "BbbBwb"      'R
        Barcode(83) = "bBbBwb"      'S
        Barcode(84) = "bbBBwb"      'T
        Barcode(85) = "BwbbbB"      'U
        Barcode(86) = "bwBbbB"      'V
        Barcode(87) = "BwBbbb"      'W
        Barcode(88) = "bwbBbB"      'X
        Barcode(89) = "BwbBbb"      'Y
        Barcode(90) = "bwBBbb"      'Z

 

이와 같은 패턴을 활용해 바코드를 그릴 수 있다. 

 

 

출처 및 참고) http://ko.wikipedia.org/wiki/%EB%B0%94%EC%BD%94%EB%93%9C