A Bar Code Primer
by Robert H. Spencer, PhD

It may seem strange to have an extended discussion on Bar Coding; with all the talk about RFID and other emerging wireless identification and tagging methods for warehouse management, the bar code seems to have been forgotten. This is not the case. Bar coding may actually be stronger than ever with new and more innovative ways to compact and store information. Over the years, we have talked about a number of providers, constantly looking great value in products and solutions. There has been resurgence in the application of bar coding over the last few years, partly because of the use of bar-coded information for automating document scanning and digital filing and partly because of newer 3D bar-code technology which stores much more information within the bar code.

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 its 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.

The following is a detailed description of the most commonly used bar-code symbologies. All of the following types of bar codes are fully supported by B-Coder Pro, the TALtech Bar Code ActiveX control, and the TALtech Bar Code DLLs.

Normal CODE 39

The Normal CODE 39 is a variable length symbology that can encode the following 44 characters: 1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ-. *$/+%. Code 39 is the most popular symbology in the non-retail world and is used extensively in manufacturing, military, and health applications. Each Code 39 bar code is framed by a start/stop character represented by an asterisk (*). The asterisk is reserved for this purpose and may not be used in the body of a message. B-Coder automatically adds the start and stop characters to each bar code; therefore, you should not include them as part of your bar-code message. If you select the NORMAL version of CODE 39, and your bar-code text contains lower case characters, B-Coder will convert them to upper case. If your bar-code message contains any invalid characters, B-Coder will prompt you with a warning message (if the Enable Invalid Warning Messages option is selected in the Preferences menu).

UPC-A, UPC-E, and UPC Supplemental

UPC-A is a 12 digit, numeric symbology used in retail applications. UPC-A symbols consist of 11 data digits and one check digit. The first digit is a number system digit that normally represents the type of product being identified. The following five digits are a manufacturer’s code, and the next five digits are used to identify a specific product.
UPC numbers are assigned to specific products and manufacturers by the Uniform Code Council (UCC). To apply for a UPC number or for more information, you can contact the UCC at 8163 Old Yankee Road, Suite J, Dayton, OH 45458 (Tel: 937-435-3870). When specifying UPC-A messages, you normally specify 11 digits and let your bar-code printing software calculate the 12th check digit for you. (All TALtech bar-code software products automatically calculate check digits for you.)

EAN-8 / EAN-13, BookLand and EAN Supplementals

EAN or European Article Numbering system (also called JAN in Japan) is a European version of UPC. It uses the same size requirements and a similar encoding scheme as UPC codes do. EAN-8 encodes eight numeric digits consisting of two country code digits, five data digits, and one check digit. B-Coder will accept up to seven numeric digits for EAN-8. B-Coder will automatically calculate the check digit for you. If you enter less than seven digits or if you enter any digits other than zero to nine, B-Coder will display a warning message. If the option Enable Invalid Message Warnings in the Preferences menu is not selected, and you do not enter seven digits, B-Coder will left pad short messages with zeros and truncate longer messages so that the total length is seven.


RSS-14 was developed by the Uniform Code Council, Inc. to answer business needs of its 200,000 member companies in North America. The purpose of the code is to increase the amount of information that can be put into a bar code while decreasing the overall area of the code. The code will allow businesses to improve the stream of information and to match that information to the actual flow of product. This type of code is particularly useful for applications where space limitations are a concern. Industries such as pharmaceutical, healthcare, logistics and transportation, and supermarkets have recently begun utilizing this new symbology. RSS allows businesses to go beyond the typical manufacturer and product identification information embedded in a bar code. The healthcare industry views this symbology as a potential way to significantly reduce medication errors. The RSS technology also improves the labeling and tracking of food items. It gives supermarkets the opportunity to improve their labeling and tracking of meat and produce items. The code can be encoded to include manufacturer’s name, item identification number, weight, extended price, and the ability to place “best if used by” dates on items. Consumers also benefit by added consumer safety. If a bad batch of produce is placed on the shelves, a supermarket will have the ability to track down the produce immediately and remove it from the shelves.


PDF417 is a high density 2 dimensional bar code symbology that essentially consists of a stacked set of smaller bar codes. The symbology is capable of encoding the entire (255 character) ASCII set. A complete PDF417 symbol consists of at least 3 rows of up to 30 code words and may contain up to 90 code word rows per symbol with a maximum of 928 code words per symbol.


Data Matrix is a high density, 2 dimensional matrix style bar code symbology that can encode up to 3116 characters from the entire 256 byte ASCII character set. The symbol is built on a square grid arranged with a finder pattern around the perimeter of the bar code symbol.

Bar Code Accuracy

There are several other bar code format standards if you wish to explore them.The examples provided here include only some of the most popular and is by no mean complete. How accurate are bar codes? They are pretty accurate according to one source which provided us the following information.

  • Symbology
  • DataMatrix
  • PDF417
  • Code 128
  • Code 39
  • UPC
  • Worst Case (characters)
  • 1 error in 10.5M
  • 1 error in 10.5M
  • 1 error in 2.8M
  • 1 error in 1.7M
  • 1 error in 394K
  • Best Case (characters)
  • 1 error in 612.9M
  • 1 error in 612.4M
  • 1 error in 37M
  • 1 error in 4.5M
  • 1 error in 800K