What is Code 39?
Code 39 (also called Code 3 of 9) is one of the oldest alphanumeric barcodes, from the 1970s. Each character is drawn with 9 bars and spaces, 3 of them wide, which makes it easy to print and to read even with simple scanners. You can put any content in it that fits the character set; no GS1 number is needed.
Where is it used?
- Industry and manufacturing: part numbers and work orders.
- ID badges and membership cards, often read by older scanners.
- Inventory and asset tags in systems set up for Code 39.
- Healthcare (the HIBC labelling standard) and US defence logistics (LOGMARS), which add a check character to Code 39.
How to make a Code 39 barcode
- Type the content: capital letters, digits, spaces and - . $ / + %. Lower-case letters are turned into capitals.
- Don’t type the asterisks: the start and stop characters (*) are added automatically and are not shown under the bars.
- If your system needs a check character, tick Add a modulo 43 check character.
- Download as SVG or PNG, or switch to Batch from CSV or the numbered series for many labels. With Code 39 chosen in the code type list, the check character setting applies to every Code 39 code in the batch.
Characters and the check character
Code 39 has 43 characters: A–Z, 0–9, space and - . $ / + %. Every code starts and ends with *, which scanners use to find the code. Code 39 is self-checking, so a check character is optional; some systems (HIBC, LOGMARS) require a modulo 43 check character at the end. Tick Add a modulo 43 check character and the generator calculates it and adds it; it is also shown in the text under the bars. Example: in CODE39 the characters count C 12, O 24, D 13, E 14, 3 and 9, which add up to 75; 75 divided by 43 leaves 32, the value of W, so the barcode holds CODE39W. Only tick it if your system expects it: a scanner set up without the check reads the W as part of the content.
Sizes and printing
- Code 39 is wide: each character takes about 16 narrow bars, against 11 in Code 128, so the same text makes a noticeably wider barcode.
- For printing, use a bar-width setting of at least 2 and keep a white margin of at least 10 narrow bars on both sides; barcodes made here include it.
- Keep the codes short; long codes become too wide for labels and harder to scan.
Code 39 or Code 128?
Code 128 encodes all ASCII characters (including lower case) and makes a much narrower barcode for the same content, so it is the better choice for new labels. Use Code 39 when an existing scanner, system or customer specification asks for it.