Code 39

Description of Code 39

Code 39Code 39 is a linear barcode symbology that is also known as Code 3 of 9. It is used to encode alphanumeric data, including uppercase letters, numbers, and a limited set of special characters.

The symbology consists of narrow and wide bars that represent the encoded data, with each character represented by a sequence of nine bars, three of which are wide and six are narrow. This allows the self checking of Code 39. The width of the bars and spaces determine the encoded character, with the bars representing ones and the spaces representing zeros. The barcode is read by scanning the code from one end to the other and decoding the pattern of narrow and wide bars.

Code 39 is widely used and is a relatively simple symbology that is well-suited for encoding short strings of data. It is often used in applications such as labeling, product identification, and inventory control.

Code 39 can be produced in different ratios of 2:1 and 3:1. This is the ratio between the thin and thick lines of the code. The higher the ratio, the wider the printed barcode with the same content, but the better the readability. ActiveBarcode always uses the 3:1 ratio. This ensures best readability.

Code 39 includes start and stop characters, which are represented by the sequence of bars for the asterisks symbol. The asterisks are usually not displayed in the text line below the barcode. But sometimes you can find a Code 39 with the asterisks at the beginning and end of the text line. To recreate such a code, you do not need to enter the asterisks: If the text line shows *1234* you just have to enter 1234 because the asterisks are a fixed part of Code 39.

By default, Code 39 does not have a built-in check digit. If you create a Code 39 barcode with the text "CODE39", the barcode will appear without the check digit:


If you create the barcode with a checksum, it will be displayed with a modulo 43 check digit:


Technical data

Valid characters: 0123456789[Space]ABCDEFGHIJKLMNOPQRSTUVWXYZ-.$/+%
Length: Variable with no fixed length.
Check digit: Calculated according to Modulo 43
ActiveBarcode calculates the check digit automatically.
Type#: Code 39 - #06 - CODE39 (no check digit)
Code 39 Checksum- #26 - CODE39CHECKSUM (Modulo 43 check digit)