Code 39

The barcode scheme does not contain a check digit (in contrast to—for instance—Code 128), but it can be considered self-checking on the grounds that a single erroneously interpreted bar cannot generate another valid character.

This means that very small goods cannot be labeled with a Code 39 based barcode.

One advantage of Code 39 is that since there is no need to generate a check digit, it can easily be integrated into an existing printing system by adding a barcode font to the system or printer and then printing the raw data in that font.

Code 39 was developed by Dr. David Allais and Ray Stevens of Intermec in 1974.

The two wide bars, out of five possible positions, encode a number between 1 and 10 using a two-out-of-five code with the following numeric equivalence: 1, 2, 4, 7, 0.

For example, the number 6 is encoded NWWNN, with wide bars occupying the positions for 2 and 4 (2+4=6).

When encoding the (+10 to +30) letters the equation needs a "−1" added so 'A' is WNNNW → 1 + 10 − 1 → 10 as shown in the table.

For example, the full encoding for the single letter "A", which actually includes the start and stop characters as "*A*", is "| |▮▮|▮|| |▮| |▮▮|".

The following free and open source software can produce Code 39 barcodes:

*WIKIPEDIA* encoded in Code 39
Code 39 characters