Code 3 of 9 (39) Specification

One of the most widely used symbologies, Code 39 can encode messages using capitalized alpha characters, numbers 0 through 9 and seven special characters. It has a flexible, variable-length format. Code 39 is used by the Department of Defense and by the automotive industry, among others. Its main drawback is that it takes up a lot of label space, sometimes causing problems when there is a lot of data to be encoded.

Code 39 is an alphanumeric bar code that can encode decimal numbers, the upper case alphabet, and the following special symbols:

- . * $ / % +

(NOTE: The asterisk is only valid as a start/stop character)
  

Code 39 characters are constructed using nine elements, five bars and four spaces. Of these nine elements, two of the bars and one of the spaces are wider than the rest. Wide elements represent binary ones (1), and narrow elements represent binary zeros (0). The character set table shows each of the available characters with their corresponding check character values.

To enable a decoder to distinguish between the wide and narrow elements a minimum wide to narrow ratio is needed. Depending upon which resolution has been used for the printing of the bar code, the width of the wide element should be at least two times greater than the narrow element. A ratio of three to one is better. All elements of the same type should be printed the same size. (The width of a narrow bar should be the same as a narrow space.)

Code 39 is a discrete bar code, with a space between characters which contains no information. The width of this intercharacter gap should be approximately equal to the narrow element width. The structure of Code 39 makes it self checking, but there is an optional message check character.