How it works
- Type the value. Lowercase letters are converted to uppercase, because standard Code 39 has no lowercase.
- Turn on the mod 43 check character only if the system reading the barcode expects one.
- Download a PNG or SVG, or print just the Code 39 barcode.
Characters Code 39 can encode
Code 39 encodes 43 characters: the digits 0 to 9, the uppercase letters A to Z, space and the symbols - . $ / + %. The asterisk is reserved as the start and stop character. The JsBarcode library adds it at both ends for you, so you do not type it.
The optional mod 43 check character
Code 39 does not require a check character, but some systems use one. With the switch on, each character gets a value (0 to 9 for digits, 10 to 35 for A to Z, then 36 to 42 for - . space $ / + %), the values are added up, and the remainder after dividing by 43 picks the check character, which goes on the end. For example, ABC adds up to 33 and gets the check character X.
Code 39 compared with Code 128
- Code 39 is wider. Each character takes 16 modules here, including the gap between characters, against 11 per symbol for Code 128.
- Standard Code 39 has no lowercase letters, while Code 128 does.
- Code 128 always includes a check character. In Code 39 it is optional.
- This tool limits Code 39 values to 40 characters.
Good uses for Code 39
- Asset tags for laptops, furniture and tools.
- Lending items, such as books or kit, in a system you run yourself.
- ID badges and room or shelf labels.
- Matching an existing system that already prints Code 39 labels.
Printing Code 39 labels
- Code 39 is commonly specified with a quiet zone of at least 10 modules on each side. The default here is 12.
- For small tags, keep the value short rather than shrinking the bars too far.
- Check a printed tag with your scanner before printing a whole sheet.
More barcode formats
- Barcode generator with every format on one page
- Code 128 barcode generator for longer or lowercase codes
- EAN-13 barcode generator for retail products
- Data Matrix generator for small asset tags
- Aztec code generator for compact 2D labels
- PDF417 generator for multi line ID data
- ITF-14 barcode generator for carton labels
- ISBN barcode generator for library books
- Check digit calculator for product numbers
Frequently asked questions
Can Code 39 encode lowercase letters?
Not in standard Code 39. This tool converts lowercase to uppercase, so asset-42 becomes ASSET-42.
Do I need to type the asterisks?
No. The asterisk start and stop characters are added automatically, and typing * gives an error because it is reserved.
Should I add the mod 43 check character?
Only if your scanner or software expects it. If it does not, the scanner may return the check character as part of the value.
Does Code 39 need a registered number?
No. You choose the values, and nothing is registered with GS1 or anyone else, which suits internal labels.
Why is my Code 39 barcode so long?
Each character is wide in Code 39. Shorten the value, lower the bar width, or use the Code 128 barcode generator, which fits more into the same space.
