Bar codes provide a simple and inexpensive method of encoding text information that is easily read by inexpensive electronic readers. Bar coding also allows data to be collected rapidly and with extreme accuracy. A bar code consists of a series of parallel, adjacent bars and spaces. Predefined bar and space patterns or “symbologies” are used to encode small strings of character data into a printed symbol. Bar codes can be thought of as a printed type of the Morse code with narrow bars (and spaces) representing dots, and wide bars representing dashes. A bar code reader decodes a bar code by scanning a light source across the bar code and measuring the intensity of light reflected back by the white spaces. The pattern of reflected light is detected with a photodiode which produces an electronic signal that exactly matches the printed bar code pattern. This signal is then decoded back to the original data by inexpensive electronic circuits. Due to the design of most bar code symbologies, it does not make any difference if you scan a bar code from right to left or from left to right.
The basic structure of a bar code consists of a leading and trailing quiet zone, a start pattern, one or more data characters, optionally one or two check characters and a stop pattern.
Bar codes are like a printed version of the Morse code. Different bar and space patterns are used to represent different characters. Sets of these patterns are grouped together to form a “symbology”. There are many types of bar code symbologies each having their own special characteristics and features. Most symbologies were designed to meet the needs of a specific application or industry. For example the UPC symbology was designed for identifying retail and grocery items and PostNET was designed to encode Zip Codes for the US Postal Service.