company <
testimonials <
products & services <
supported printers <
contact us <
Products and Services
fonts overview
font services
bar codes
bar code labels
conversions & formatting
elixir design pro tools
euro services
linear bar codes
windows linear barcoding utilities
2D barcoding
linear vs. 2D barcoding
postal barcodes
other machine readable fonts
Code 2 of 5 Interleaved
Code 128
Code 3 of 9

Barcode specifications

Code 3 of 9

Solutions available: Windows stand-alone font, Windows font + encoder, AFP, Xerox, PCL, and bespoke solutions.

Please email sales@terrapin.co.uk with your requirements and we will find a solution for you.

Code 39 specification
Data Type: Alphanumeric plus a few special characters
Bar Code Length: Variable
Checksum: Optional (Modulo 43)
Wide/Narrow bar width ratio: Between 1:1.8 and 1:3.4 (Optimum 1:3)

General Information
The advantage of Code 39 is the great number of characters it offers (43), the more reliable reading results and its widespread utilisation. Code 39 can be read by just about every scanner on the market. A disadvantage is the low information density, since nine elements and an intercharacter gap are required for each barcode symbol.

The Code 39 was created in 1975 by Intermec and is now widely used by public authorities, industry and commerce. The Code 39 is sometimes also called Code Alpha 39 or Code 3 of 9 or 3 of 9 Code. The two digits 3 and 9 mean that each character is made up of 3 wide elements out of a total of 9. A single character consists of 5 black bars and 4 white spaces. Characters are separated by an inter-character gap which is about the same width as a narrow bar. The ratio of wide:narrow bar widths may be in the range of 1.8 to 3.4, but 1:3 is optimal. Barcodes with a narrow bar width of less than 0.020 inches (0.508mm) should have a ratio of at least 2.5. Every Code 39 barcode should be preceded and followed by a quiet zone the width of at least 10 narrow bars.

The character set of Code 39 consists of:

  • 10 digits
  • 26 letters
  • 7 special characters

    The widths of the bars and spaces in Code 39 should normally be the same, but in practice because some printers 'squash' out the ink, this widens the bars and narrows the spaces so the bars may be thinned up to take this into account.

    Each symbol of Code 39 is self-checking and therefore safeguards against reading errors. An additional check digit is not often used, but a few critical applications may require one. In these cases Modulo 43 is used to calculate the check digit. Code 39 is one of very few barcodes that do not require a check digit and is therefore attractive for applications where it is difficult or inconvenient to perform calculations each time a barcode is printed.

    The number of characters per printed Code 39 symbol is variable and depends on the qualities of the reading device used.

    Character Set
    Each Code 39 barcode should begin and end with the start/stop delimiter which is found in the asterisk (*) position. The complete Code 39 barcode fonts consists of the following 43 characters (as well as the stop/start character).


    It should be noted that where fonts are being used in an IBM AFP environment, the barcode space character will have been moved to the 'comma' position (EBCDIC Hex '6B'). This is because the AFP space in 'Hex 40' will always print as blank. Where TrueType or Type 1 fonts have been supplied along with AFP fonts in a multi-platform environment, then the TrueType and Type 1 barcode space will be in both positions - blank space (ASCII Decimal 32) and comma (ASCII decimal 44).

    Extended Code 39
    Code 39 only contains only 43 characters, but the full 128 ASCII character set can be encoded by utilising Extended Code 39. It is not a separate font - the extended set is achieved by combining 2 regular Code 39 characters from the Extended Code 39 Table. For example, lower-case 'a' can be set by combining the Standard Code 39 characters '+' and 'A', lower-case 'b' can be set by combining '+' and 'B', etc. For a full list of Extended Code 39 key-combinations, please contact info@terrapin.co.uk.

    Modulo 43 Check Digit
    The check digit in Code 39 is positioned immediately in front of the Stop character. The check digit is calculated using the value defined for every Code 39 character (see reference table below).

    Char. 0 1 2 3 4 5 6 7 8 9 A B C D E F G H I J
    Value 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

    Char. K L M N O P Q R S T U V W X Y Z
    Value 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35

    Char. - . Sp $ / + %
    Value 36 37 38 39 40 41 42

    Check digit

    12 + 24 + 13 + 14 + 3 + 9 ÷ 43 = 75
    75 ÷ 43 = 1 Rem 32
    Check digit = 32

    Final string *CODE39W*