Barcoding for Beginners & Barcode FAQ

Barcode Information | Tutorials | FAQs at

Barcode FAQ & Tutorial

History of Barcodes

The industrial use of barcodes can be traced back as far as the 1960s, in some cases as a means to identify railroad cars. Common linear barcodes started appearing on grocery shelves in the early 1970s as the UPC barcode to automate the process of identifying grocery items. Today, barcodes are just about everywhere and are used for identification in almost all fields of business. When barcode technology is utilized in business processes, procedures are automated to increase productivity and reduce human error. Barcoding should be used whenever there is a need to accurately identify or track something.

Barcode Types, Symbologies & Standards

The type of barcode that should be used may depend on several variables, including the following:

  1. Standards and mandates
  2. Purpose and use
  3. Data encoded
  4. Printing and/or decoding methods

There are several different types of barcode standards for different purposes – these are called symbologies. Each type of symbology (or barcode type) is a standard that defines the printed symbol and how a device, such as a barcode scanner, reads and decodes the printed symbol.

If an industry standard has already been established for the intended implementation, the standard should be implemented. If a standard does not exist for the chosen implementation, several symbologies are available to choose from.

Industry standards are usually established when multiple parties or companies are involved in the ID process. The standard is not necessarily the same as the barcode symbology. Barcode standards define how to use the barcode symbology in a particular situation. For example, the two standards to create ISBN barcodes for books and generate ISSN barcodes for periodicals both use EAN-13 to encode data into the barcode, but have different methods depending on the specific ISBN & ISSN standards.

The chart below includes a few established barcode standards and what they are used for:

Established Barcode Standards:

 Established StandardPurposeBarcode Symbology
 ABC Codabarblood bank tracking Codabar
 AIAGautomotive item identification Data Matrix
 DOD UIDunique identifier for US Department of Defense Data Matrix
 EAN-8 & EAN-13items for sale worldwide UPC/EAN *
 EAN-14shipping cartons Interleaved 2 of 5 or Code 128
 GTINglobal trade identification Code 128
 GTIN-12global trade identification UPC *
  GTIN-13global trade identification EAN *
  GTIN-14global trade identification and POS GS1-DataBar
 ISBN, ISSN & Booklandbooks and periodicalsEAN-13 with UPC/EAN
 LOGMARSUS Department of Defense Code 39
 MIL-STD-130US Department of Defense Data Matrix
 SCC-14shipping cartons Interleaved 2 of 5 or Code 128
 SISACserial numbers for serial publications Code 128
 SICI Codeserial numbers for serial publications Code 128
  ISBT-128blood, tissue and organ products Code 128
 SSCC-18shipping cartons Code 128
 USPS Special ServicesUS mail special services Code 128
 UCC12, UPC-A & UPC-Eitems for sale in the USA and Canada UPC *
 USPS Intelligent MailUSPS mail routing and tracking 4 State

* Beginning January 1, 2010, GS1 DataBar may be used in place of all UPC and EAN barcode types for POS.

IDAutomation also offers a list of several popular barcode symbologies at the barcode FAQ site and information about how to identify the various symbologies.

Choosing the Best Barcode Type for Printing

IDAutomation offers several Application Integration Guides that suggest one or more options for integrating barcodes. The integration options should be examined to determine whether to implement components, applications or barcode fonts for printing. A few of the Barcode Integration Guides offered include the following:

Once it is determined which product to use for the printing of barcodes, the following suggestions may help in selecting the barcode symbology:

When using Barcode Components or Applications for printing a certain number of characters, the following is suggested:

  • When encoding uppercase and/or lowercase letters, numbers, punctuation, any letter or symbol appearing on the standard U.S. keyboard and lower ASCII functions such as returns and tabs, up to about 40 digits, use Code128. All of IDAutomation’s barcode components and applications support Code 128 as the default barcode type.
  • When encoding several lines of data of any type over 40 characters, it is suggested to use the PDF417 or Data Matrix barcodes.

When using Barcode Fonts, the following is suggested:

  • When encoding only numbers, up to about 30 digits, choose Codabar Barcode Fonts. Codabar is the most dense, self-checking (easy-to-use) symbology.
  • When encoding uppercase letters, numbers and these symbols (- . $ / + %), up to about 20 digits, choose Code 39 Barcode Fonts. Code 39 is also a dense self-checking (easy-to-use) alpha-numeric symbology.
  • When it is necessary to encode uppercase and lowercase letters, numbers, punctuation and ASCII functions such as returns and tabs, up to about 40 digits, use Code 128 Barcode Fonts or the Universal Barcode Fonts.
  • When encoding any data of any type over 40 characters, use the PDF417 or Data Matrix barcodes.

When barcodes are sent via fax machine or are used in a low-resolution environment, the following is suggested:

When Barcode Applications are used, the following is suggested:

  • To create barcode images individually, save the images to a file or easily paste barcodes into other Windows applications, consider IDAutomation’s Barcode Image Generator. This application is commonly used to create barcode image files for Photoshop, Paint Shop Pro, Quark, CorelDraw, Word and other word processor and graphic applications where a single image can be printed several times without change.
  • To print barcode labels dynamically from a database or list with a label design application compatible with Windows, consider IDAutomation’s Barcode Label Software.

When encoding photos, arrays, binary data, Unicode, international or double-byte characters, the following is suggested:

A two-dimensional symbology (2D barcode) such as the PDF417 or Data Matrix barcode should be used to encode this type of data. 2D barcodes encode this type of data when the encoding mode is set to BASE256 or BINARY, which encodes all data, byte-by-byte. When scanning the data, the barcode scanner must be able to read all 256 bits of each byte. This usually means using the serial interface option (data bits have to be 8N) on the scanner, serial emulation over USB or another type of connection that allows all 256 bits of each byte to be transferred to the necessary application. Normally, keyboard wedge and USB barcode scanners (that emulate a keyboard) do not support extended characters above ASCII 128, and they only read characters that are actually on the keyboard. The scanner manual or vendor may need to be consulted for this type of implementation. Alternatively, the data may be converted to Base64 when encoded in the barcode and then back again when read. However, this requires additional programming and will create a symbol that is about four times larger than it would be with BASE256 or BINARY encoding.

When creating PDF documents, the following is suggested:

IDAutomation barcode fonts may be used to integrate barcodes into PDF documents, thus creating virus-free portable data files that can be viewed on all operating systems with a PDF viewer. The fonts have been tested and work with the following PDF conversion products:

  • Adobe Distiller Server works well with all of IDAutomation’s MICR, OCR and barcode fonts including symbol-encoded fonts.
  • Crystal Reports version 9 and above can create PDF documents with IDAutomation’s Barcode Fonts.
  • PDFLib is a library for generating PDF “on the fly” for programmers only. Runs on Mac, Windows and several Unix platforms in addition to EBCDIC-based platforms, such as IBM eServer iSeries 400 and zSeries S/390. PDFlib is especially well-suited for generating PDF on a Web server. PDFlib can generate PDF data directly in memory (instead of on file), resulting in better performance and avoiding the need for temporary files. This product was implemented by a client using IDAutomation’s PostScript Interleaved 2 of 5 Barcode Fonts with Redhat Linux 6.2.
  • PDF Machine is a simple print driver that permits the creation of a PDF document from any printable source. Version 6.2 supports printing the barcode font at small point sizes.

Reading Barcodes

One of the most common tools for reading barcodes is the hand-held barcode scanner. The barcode scanners recommended and sold by IDAutomation all have built-in decoders that can read several different barcode symbologies. There are a few low-priced scanners on the market, but they require complicated decoders. In the long run, after ordering and programming a decoder, more time will be spent using the decoder than if ordering a scanner with a built-in decoder.

Most of the barcode scanners sold by IDAutomation receive their power from the PC keyboard or USB port so no external power supply is required. When a barcode is scanned, the data is sent to the PC as if typed on the keyboard. To learn more about scanning barcodes, review how to scan barcode data into applications.

Most barcode scanners can read common linear symbologies such as Code 39, UPC, EAN, Code 128 and Codabar by default. Some scanner manufacturer’s ship new barcode scanners with most symbologies disabled, therefore, if a particular barcode cannot be read, make sure it is enabled in the scanner’s firmware. Not all scanners read barcodes that are printed at small X dimensions (the x dimension is the width of the narrow bar in the code,) so it is advisable to check the barcode scanner manual to make sure the scanner can read the small X dimensions.

The low-priced IDAutomation Plug ‘n Play USB Barcode Scanner performs similar to a laser scanner and reads very small barcodes. Barcodes of 4 to 32 mils in size and up to 4.2″ in width are easily read from a distance of 4 to 8 inches with this scanner.

Barcode Area Efficiency

Many situations may exist where the space a barcode occupies becomes a concern. The barcodes below are all encoding the same data of “BARCODE12345678” with the same narrow bar width or X dimension of .03CM or 12 mils. When creating small barcodes, the scanner must also be able to dependably read them. For example, the IDAutomation Plug ‘n Play USB Barcode Scanner reads both Code 128 and Code 39 at 6 points and above. The barcodes below may be printed from IDAutomation’s Symbology Test Sheet for testing purposes.

Linear and 2D Barcode Symbology Evaluation Chart
 Code 39 without check digit:

Aztec Barcode

Code 128 Auto:


Data Matrix ECC200 with ASCII encoding mode:

 PDF417 in Text encoding mode:

QR-Code with Error Correction L

As seen in the examples above, the Data Matrix barcode is the most compact of the symbologies evaluated. However, it requires a 2D Barcode Imager or Image Reader to read the symbol. Several Imagers can easily read small symbols, such as the IDAutomation’s 2D USB Barcode Scanner that can read Data Matrix barcodes printed with the Data Matrix Font as small as 2.5 points, which is an X dimension of about .02CM or 8 mils. Data Matrix is also one of the most accurate barcode symbologies.

Barcode Accuracy & Misreads

The accuracy and amount of misreads of several different barcode symbologies were evaluated in a study at Ohio University Center for Automatic Identification. Studies indicate that a well-trained data entry operator will usually make a data entry error once every 300 keystrokes. Therefore, implementing even the least accurate barcode symbology is a huge step forward to increasing production and reducing data entry errors.

 Barcode TypeWorst Case AccuracyBest Case Accuracy
 DataMatrix1 error in 10.5 million1 error in 612.9 million
 PDF4171 error in 10.5 million1 error in 612.4 million
 Code 1281 error in 2.8 million1 error in 37 million
 Code 391 error in 1.7 million1 error in 4.5 million
 UPC1 error in 394 thousand1 error in 800 thousand

Conversion Table & Specifications

Specifications are provided by many types of barcode implementations. In some cases, the specifications of the barcode sizing parameters are given in inches, but need to be calculated in CM (centimeters) in the barcode tool. To convert inches to CM, multiply the value in inches by 2.54. To convert mils to CM, multiply the MILS (1 mil equals .001 inches) value by .00254.

Below is a chart that contains many common barcode dimensions: