White Paper on “Barcodes”
In 1973, barcodes quietly strolled into our world. Barcodes are those familiar "bars" and "numbers" most of us first encountered on products in the supermarket. In just over 25 years, barcodes have been placed on everything imaginable. There are short barcodes, and tall barcodes, skinny and fat barcodes. There are postal and international barcodes as well as 2-D barcodes. From letters, to cokes, from fishes to smokes, there's a barcode for virtually everything.
The most common barcode used in the United States is the Universal Product Code (UPC) barcode. The UPC was designed for the grocery industry. Because of the large number of items normally "checked-out" at the grocery store, a method was needed to speed up and eliminate "human" cashier errors. Hence, the UPC barcode was born. There are many different types of bar codes currently in use and each has its own official specifications. A detailed discussion of the format of the more common barcodes is given in Appendix A. A list of barcodes and their applications are: Numeric-only barcodes
; EAN-13 (European Article Numbering, an international retail product code)
; EAN-8 (compressed version of EAN code for use on small products)
; UPC-A (Universal Product Code seen on almost all retail products in the USA
; UPC-E (compressed version of UPC code for use on small products)
; Code 11 (used primarily for labeling telecommunications equipment)
; Interleaved 2 of 5 (compact numeric code, widely used in industry, air cargo,
; Industrial 2 of 5 (older code not in common use)
; Standard 2 of 5 (older code not in common use)
; Codabar (older code often used in library systems, sometimes in blood banks)
; Plessey (older code commonly used for retail shelf marking)
; MSI (variation of the Plessey code commonly used in USA)
; PostNet (used by U.S. Postal Service for automated mail sorting)
; Code 39 (de facto standard for Government, Manufacturing, BarCode Industry,
Education, and Business applications, in use world-wide)
; Code 93 (compact code similar to Code 39)
; Code 128 (very capable code, excellent density, high reliability; in very wide use
; LOGMARS (same as Code 39, this is the U.S. Government specification)
; PDF417 (excellent for encoding large amounts of data)
; DataMatrix (can hold large amounts of data, especially suited for making very
; Maxicode (fixed length, used by United Parcel Service for automated package
; QR Code (used for material control and order confirmation)
; Data Code
; Code 49
Industry Standards for Barcodes and Labels
; Bookland EAN encodes ISBN numbers, (used internationally to mark books)
; ISSN and the SISAC Barcode (International Standard Serial Numbering)
; OPC Optical Industry Association barcode for marking retail optical products
; UPC Shipping Container Symbol (ITF-14)
; Co-Operative labels (located under software)
The most common bar codes are UPC, EAN 13, ISBN, ISSN, and CODE 39. For Automatic Identification Applications, barcode CODE 39 Format (aka Code 3 of 9) is the de facto standard for Government, Manufacturing, BarCode Industry, Education, and Business applications. CODE 39 is the most commonly used BarCode Format because it enables numbers, upper case letters, and some punctuation marks (Capital Letters A-Z, Numbers 0-9, the "space" character, and the symbols:-,+,/,$,.,%) to be BarCoded. The popularity of the CODE 39 Format is based on several factors, which include: ease of use, ability to code numbers and letters, flexible word length capability (can generate BarCodes with any number of characters), and universal reading capability (BarCode equipment from any manufacturer can read this code).
How do you read a barcode?
To the average person, the barcode looks confusing and complex, but to a "bar-coded" friendly computer, it's actually very simple. A single barcode number is actually seven units. A unit is either black or white. A unit that is black would display as a "bar". A unit that is white would display as a "space". Another way of writing a barcode unit is "1" for a single unit "black bar" and "0" for a single unit "white space". For instance, the number "1" is composed of the seven units, "0011001" or "space-space-bar-bar-space-space-bar". Remember, a single barcode number requires seven units.
For a UPC barcode, the same numbers on the left-hand side (the Manufacturer Code) are coded different than the numbers on the right-hand side (Product Code). A detailed discussion of the UPC barcode elements is contained in Appendix B. The left side numbers are actually the "inverted" or "mirrored" codes of the right side numbers, for instance what is a "bar" on the right-side, is a "space" on the left-side. The right-side codes are called "even parity" codes because there is an even number of "black bar" units. For instance the right-side "6" is "101000" - 2 even-numbered "black bar" units. The left-side is called "odd-parity" because there is an odd number of "black bar" units. For instance, the left-side "6" is "0101111" - 5 odd-numbered "black bar" units. Having different coded numbers for each side allows the barcode to be scanned in either direction. The left side number code always begins with a "space" or "0" and ends with a "bar" or "1". The right is just the opposite, it begins with a "bar" or "1" and ends with a "space" or "0".
Left or “Odd” Parity
Right or “Even” Parity
Detailed barcode breakdown.
Scanners are the devices that read bar codes. Of all the available bar code readers, the Charge-Coupled Device (CCD) scanner is the most common. A CCD scanner uses photoreceptors which are similar to those used by electronic photographic cameras: the bar code is illuminated by a row of LEDs and the CCD array sensors pick up the image of the code. If it falls on a light area, a zero (0) is read. If it falls on a dark area, it reads a one (1). Scanning the bar code generates a string of zeros and ones. This pattern of zeros and ones represents the characters encoded. The scanner software, or firmware, translates the strings into characters. The scanner must be able to shoot a straight line across the bars and spaces. The taller the bars the greater the angle and the greater the chances of getting a good reading.
On the right and left sides of every bar-code there are “Guard Bars” (bar-space-
bar) which warns the scanner about code start and stop. Right next to these Guard Bars there are areas with no bars, composed only of spaces called Quiet Zone. These are usually about ten modules wide and they are very important for correct scanning. The quiet zone is the clear area (free from marks) before and after the bars and spaces. Having a quiet zone is as important to readability as the bars and spaces. Scanners need to establish values for the quiet zone before they can evaluate the bars and spaces. Reading the color and reflectance of the quiet zone establishes how the spaces will read and determines the difference between the spaces and the bars. Barcodes cannot be read
without a quiet zone. In the middle of the bar code there is a middle zone using Guard Bars to separate the right and left side of the bar-code.
An example below illustrates how to read an EAN-8 bar-code. It includes a 2 or 3 digit country code, 4 of 5 data digits (depending on the length of the country code), and a checksum digit. While it is possible to add a 2-digit or 5-digit extension barcode, the primary purpose of the EAN-8 code is to use as little space as possible. The data digits in an EAN-8 symbol specifically identify a particular product and manufacturer. Since a limited number of EAN-8 codes are available in each country, they are issued only for products with insufficient space for a normal EAN-13 symbol. For example, a 2-digit country code permits a total of only 100,000 item numbers.
country code data digits checksum digit.
Left or Odd Parity
Right or Even Parity
; The yellow area of the diagram below shows the bar code as it is printed on a
; The blue area of the diagram shows the analysis into modules.
; The pink area shows the analysis of the binary system which is what the scanner
understands. The black modules represent 1 and the space modules (seen as white)
represent 0. For this reason the colors used in printing bar-codes is extremely
important. Low contrast between dark and light modules won’t allow proper
; The gray area shows the analysis of the binary to numerical system.
With the wide use of bar-codes many software companies now produce applications for producing bar-codes. You must be careful when deciding to implement barcode applications because some applications can be problematic. Many applications have been designed for very specific printing techniques, such as labeling, and do not have the necessary specifications that are required for producing high quality film masters and don’t take into consideration different printing materials and methods. Some applications also simply accompany other design programs which have attempted to create bar-codes using fonts rather than actual bars and spaces. Numerous other factors intervene in such cases and often make the bar-codes unreadable.
Barcodes have made a significant impact in the marketplace. The economical savings realized by speeding up inventory processes, business transactions, and eliminating human errors is evident. Barcodes provide a cost effective, accurate tool which will continue to permeate our daily lives.
Annex A – Most Commonly Used Barcode Descriptions
; UPC (Universal Product Code) is the code widely used for numbering retail
products in the USA & Canada. The 12 digit number is encoded in a 13 digit EAN symbol; the two numbering systems having been designed to prevent conflict. UPC codes are compatible with EAN scanning systems, but UPC systems expecting no more than 12 digit numbers cannot use EAN symbols. There is also a short code containing only 8 digits. The short form UPC-E encodes 8 digits, only 7 of which are typed in as a leading zero is inserted. ; CODE 39 (Code 3 of 9) is a bar code which includes a complete series of
alphanumeric characters, unique start and stop characters and seven special characters. It consists of three wide elements out of nine (name Code 39). These nine elements are composed of five bars and four spaces each and can have up to 64 characters.
EAN 13 (European Article Numbering) is the code most commonly used for ;
numbering retail products in Europe. It is officially administered by the International Article Numbering Association. The association issues 13 digit numbers, each comprising a 2 or 3 digit country code (known as flag), a 4 or 5 digit manufacturer number, a 5 digit product number and a check digit. The 13 digit symbol can take on a 2 or 5 digit add on. The Article Numbering Associations has published a full specification which defines the bar-code structures, allowed sizes and permissible tolerances of EAN bar codes. There is a check digit at the end of a code, used to determine whether it has been properly decoded. OCR-B is the font usually specified to read the code, although other fonts are sometimes used.
; ISBN (International Standard Book Numbering) is used on books. The
number is encoded in an EAN symbol. It is identified by a three digit prefix. This is currently 978 or 979 followed by a 9 digit book number and a check digit. ; ISSN (International Standard Serial Numbering) is used on magazines and
periodicals. The number is encoded in an EAN symbol. It is identified by the 3 digit prefix 977. ISSN contains 13 digits followed by an optional 2 or 5 digit add on.
Annex B – UPC Barcode
The most common barcode format is the UPC (Universal Product Code) Format, which we find in all supermarket products. Available since the early 1970's, this format is known worldwide and is universally recognized. Below is a typical UPC barcode. It consists of a Number System Character, Guard Bars, Manufacturer Code, Product Code, a Check Digit and Human Readable Numbers. When the barcode is scanned, the computer does not read the numbers underneath the barcode. These Human Readable (HR) numbers are printed so a "human" can easily read the barcode, if necessary.
Number System Character: This number is a UPC system number that characterizes
specific types of barcodes. In a UPC barcode it is normally on the left of the barcode. The actual "barcode" (the "bars" and "spaces") is the first "barcode" after the first "guard bar". The Number System Character is the blue box on the "Anatomy of a Barcode". Codes of the Number System Character:
; 0 - Standard UPC number.
; 1 - Reserved.
; 2 - Random weight items like fruits, vegetables, and meats, etc.
; 3 - Pharmaceuticals
; 4 - In-store code for retailers.
; 5 - Coupons
; 6 - Standard UPC number.
; 7 - Standard UPC number.
; 8 - Reserved.
; 9 - Reserved.
Guard Bars: There are "3 guard bars". They are located at the beginning, middle and end. The beginning and ending guard bars are encoded as a "bar-space-bar" or 101. The middle guard bar is encoded as "space-bar-space-bar-space" or 01010. The guard bars "tell" the computer-scanner when the manufacturer and product code begin and end. For example, when the computer-scanner reads the first "101" or guard bar, the computer knows the next series of numbers is either the manufacturer or product code. And when the computer reads the "01010" or middle guard bar, the computer knows another number is coming. The 3 guard bars are also the supposedly "666" hidden in the barcode (we'll look at this in detail later). The 3 guard bars are highlighted with a green box on the "Anatomy of a Barcode". Also, the first guard bar scanned is used by the computer to calculate the "width" of one unit.
Manufacturer Code: This is a five digit number specifically assigned to the
manufacturer of the product. The manufacturer codes are maintained and assigned by the Uniform Code Council (UCC). Every product the manufacturer makes carries the same manufacturer code. For example, the manufacturer code for Kellogg's is 38000. Every product Kellogg makes carries 38000 as the manufacturer code in the bar code. Product Code: The product code is a five digit number that the manufacturer assigns for a particular product. Every different product and every different packaging or size, gets a unique product code. For instance, a 16oz bottle of coke gets a different product code than a 24 oz bottle of coke. For example: Kellogg's 13.5 oz Rice Krispies barcode is 38000 90530 — the 38000 is the manufacturer code for Kellogg and the 90530 is the product code for 13.5oz Rice Krispies. Kellogg's 16oz Mini-Wheats is 38000 02720 —
the 38000 is the manufacturer code for Kellogg (the manufacturer never changes for Kellogg products) and the 02720 is the product code for 16oz Mini-Wheats. A manufacturer can have 99,999 unique product codes.
Check digit: Also called the "self-check" digit. The check digit is on the outside right of the bar code. The check digit is an "old-programmer's trick" to validate the other digits (number system character, manufacturer code, and product code) were read correctly. How the computer calculates the check digit:
1. Add all the odd digits. In our "Anatomy of a Barcode" we would add 0 (yes, you
include the number system character digit) + 2 + 4 + 6 + 8 + 0 = 20
2. Multiply the sum of step 1 by 3. Our example would be 20 x 3 = 60.
3. Add all the even numbers. In our "Anatomy of a Barcode" we would add 1 + 3 +
5 + 7 + 9 = 25. You do not include the 5 or the check digit because that's what
you are calculating.
4. Now add the result from step 2 and step 3. 60 + 25 = 85.
5. The check digit is the number needed to add to step 4 to equal a multiple of 10. 85
+ 5 = 90. 5 is the check digit in our example. Another way to calculate the check
digit would be simply to divide the number from step 4 by 10. The remainder is
the check digit. Example 85/10 = 8.5
You'll notice the price was NOT included in the barcode. The price is contained in a database that the computer associates with the barcode.