Barcode Basics
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.
There are a variety of different types of bar code encoding schemes or \”symbologies\”, each of which were originally developed to fulfill a specific need in a specific industry. Several of these symbologies have matured into de-facto standards that are used universally today throughout most industries. The symbologies supported by B-Coder, The TAL Bar Code ActiveX control and the TAL Bar Code DLLs are those most commonly used across all industries.
The different symbologies have different capabilities for encoding data. For example the UPC symbology used to identify retail products always contains 12 numeric digits whereas the general purpose Code 39 or Code 128 bar code symbologies can encode variable length alphanumeric data up to about 30 characters in length. These types of bar codes are called \”linear symbologies\” because they are made up of a series of lines of different widths. Most commercially available bar code scanners are able to read all of the different linear bar code symbologies therefore you do not need different readers for different types of bar codes.
New \”2-Dimensional\” bar code symbologies like PDF417, Aztec Code and Data Matrix are also now available that can encode several thousand bytes of data in a single bar code symbol including text or binary data. The newer 2D bar code symbologies typically require special bar code readers that are designed specifically for reading them.
The Barcode: Primary Purpose & Usage
The primary purpose of a bar code is to identify something by labeling the item with a bar code containing a unique number or character string. Bar codes are typically used with a database application where the data encoded in the bar codes is used as an index to a record in the database that contains more detailed information about the item that is being scanned. For example, when a checkout clerk scans a bar code on a product in a grocery store, the bar code data is fed to a computer that looks up the information in a central database and returns more detailed information about the item that was scanned including possibly a description of the item and a price. By using bar codes, the grocery store does not need to put a price tag on each item in the store and they can also change the price for a particular item by modifying a single entry in the central database. They can also track how much of a product is currently in stock so that they know when to re-order more of each item as the number of items in stock falls.
Bar codes also provide a quick and error free means for inputting the data into an application running on a computer. By using bar codes, the potential for errors from manual data input is eliminated. Another typical application for bar codes is therefore for inputting data without having to type. For example you could encode name or address data in a bar code on an ID badge and then scan the ID badges to input a persons name into a computer program instead of typing the information.
How much data can you actually encode?
The different bar code symbologies support different types and amounts of data therefore you normally choose a particular symbology based on the type and amount of data that you want to encode in your bar codes.
Barcode Licensing
You are generally free to use any type of bar code that you like and encode whatever data that you like for applications in a closed system.
If you want to place bar codes on retail items that will be commercially distributed (i.e. UPC or EAN bar codes), you will need to apply for a manufacturer number from the Uniform Code Council in the USA, Tel: 937-435-3870. If you plan to distribute your products outside of the United States then you need to apply for a manufacturer code from EAN International in Belgium. Tel: 011-32.2.227.10.20
Symbologies
All of our bar code software products use an extremely efficient encoding algorithm that will squeeze the maximum number of bytes possible into a PDF417 symbol however it still must work within the limits of the symbology specification.
Variable length numeric data – the practical upper limit is dependent on the scanner and is typically between 20 and 50 characters.
Data can consist of any type of data including binary or alphanumeric and be up to 3116 bytes in length.
Data can consist of any type of data including binary or alphanumeric and be up to 3750 bytes in length.
Maxicode can hold up to 93 alphanumeric characters or 138 numeric digits. Maxicode is used almost exclusively for United Parcel Service package identification.
PDF417 is a little more complex and it is difficult to say exactly what its capacity is because it depends greatly on the type of data that you encode in a PDF417 symbol as well as the amount of error correction capacity that you choose to use in a PDF417 symbol.
For general binary data with no error correction enabled, a single PDF417 symbol can hold up to 1108 bytes. If the data consists of all numeric digits, then a single PDF417 symbol can hold up to 2725 digits. If the data consists of alphanumeric data, you can encode a maximum of 1850 bytes. If you have a mix of alphanumeric and binary data, the capacity will be somewhere between 1108 and 1850 bytes and will depend on the content of the data.
QR Codes
QR Codes are all over the place. They are the small square grids we find on products, billboards, and advertisements. It allows users to get to places on the web, whether it be a web site, an image, an email address, etc. We have a very interesting episode of Security Now (episode #382, December 12, 2012), part of the TWIT podcast network talking all about this technological advancement.
Although QR Codes are almost ubiquitous, you should always be careful where you get your codes generated from. There has been a slew of patent trolls who others in trouble for generating QR codes using unauthorized licenses. Here is the list of all authorized licensees of the QR Code technology:
Microsoft
ScanBuy/ScanLife
CodeBroker
Paperlinks
SpyderLynk
4GQR
Reading a Barcode from a Computer Screen’,’reading-a-barcode-from-a-computer-screen’,’’,’
It is entirely possible to read bar codes directly off a computer screen however there are a few technical issues and requirements that must be considered.
First of all, the resolution of most computer screens is too low to render a readable bar code if the standard bar code dimensions are used. The width of the smallest bar or space in a normal sized bar code is on the order of 13 mils wide yet the screen resolution of most computer monitors is typically 72 dots per inch or 13.88 mils per pixel. Since a computer screen draws graphics using fixed size pixels, it cannot draw bars that have a width that is not an exact multiple of the width of a single pixel. In order to display readable bar codes on a computer screen, you must choose a bar width for your bar codes that is an integer multiple of the width of a screen pixel. For example, if your screen resolution is 72 DPI, then you should use bar codes that have a narrow bar width of 13.88 mils, 27.77 mils or 41.66 mils, etc. This will cause your bar codes to be larger than a normal bar code however they will at least be readable. Also, if the bar code symbology that you want to use supports a \”Narrow to Wide Bar Width Ratio\”, then this value should be set to an integer value of either two or three; with three being the preferred value.
Secondly, there are several different types of bar code readers on the market including wands, laser scanners, CCD readers and camera based readers. The only types that can successfully read a bar code off a computer screen are CCD readers and camera based readers. CCD readers typically have difficulty reading bar codes off a normal glass tube computer monitor however they can easily read bar codes off an Active matrix or other flat panel display. The best type of reader to use when reading bar codes from a normal computer monitor is a camera based reader. The camera type readers actually take a picture of the bar code and use digital image processing techniques to decode the bar code so that it is much easier for it to read off a computer screen. The only drawback to camera type readers is that they are extremely expensive with a typical price tag of $1500 and up.
All other types of bar code readers (pens and laser scanners) measure the intensity of reflected light and therefore cannot be used to read from a monitor because the glass or plastic in the monitor screen does not reflect light back to the reader.