Code 39 Barcode Generator
Encode letters and numbers into a Code 39 barcode.
How to use the Code 39 Barcode Generator
- Enter uppercase letters, digits and supported symbols.
- Download the barcode as PNG.
About the Code 39 Barcode Generator
Code 39 — also called Code 3 of 9 — is one of the oldest barcode formats still in everyday use. It encodes uppercase letters, digits and a small set of symbols, and each character is drawn from nine elements, three of which are wide. That simplicity is its virtue: it is easy for any scanner to read and it needs no check digit, which is why it stuck in automotive and defence supply chains and in older inventory and ID systems that were built around it decades ago.
The trade-off is size. Code 39 encodes far fewer characters than Code 128 and produces a substantially longer barcode for the same data — often close to double the width. If you are starting fresh and your scanners are modern, Code 128 is almost always the better choice; reach for Code 39 when a system you are feeding specifically requires it.
The most common mistake is lowercase. Standard Code 39 has no lowercase characters, so type in uppercase — this tool converts your input for you, which means a lowercase entry produces an uppercase barcode, not an error, and the scanned result may not be the string you expected. It also adds no check character by default; if your system expects one, it must come from that system. Keep quiet zones clear at both ends and do not squeeze the bars to fit a narrow label.
Frequently asked questions
Can Code 39 encode lowercase letters?
No. Standard Code 39 covers uppercase letters, digits and a handful of symbols only. Anything you type is converted to uppercase, so the barcode scans back as uppercase even if you entered lowercase.
Why is my Code 39 barcode so wide?
That is inherent to the format — each character takes nine elements plus a gap, so it is far less dense than Code 128. Long values quickly outgrow the label.
Should I use Code 39 or Code 128?
Code 128 for anything new: it handles the full ASCII set and produces a much shorter barcode. Choose Code 39 when the system you are feeding — often an older automotive, defence or inventory system — explicitly requires it.
Does it need a check digit?
No, Code 39 works without one, which is part of its appeal. Some systems use an optional mod-43 check character; this tool does not add one, so if yours requires it, that has to come from your system.
Why are there asterisks around my barcode text?
Code 39 traditionally uses a start and stop character, commonly shown as an asterisk. It marks the beginning and end of the symbol and is not part of your data.

