Code 39 barcode generator
An older, very forgiving barcode that almost every scanner reads, still required in automotive, defence and some ID systems.
A–Z, 0–9 and - . space $ / + %. Lower case becomes upper case.
About Code 39
Code 39 holds upper-case letters, digits and a few symbols. Each character stands on its own, so it prints well on rough labels and old printers.
It is wider than Code 128 for the same data. Use it when a customer, a standard or an old scanner asks for it; otherwise Code 128 is the better choice.
What goes in it
- Characters
- A–Z, 0–9, - . space $ / + %
- Lower case
- Turned into upper case
- Check digit
- Not required
- Start / stop
- An asterisk at each end, added for you
Where Code 39 is used
Code 39 is one of the oldest barcodes still in use. It appears on ID badges, older industrial and automotive labels, and military and government asset tags, where existing scanners and systems expect it.
It is self-checking and easy to print, but wide: it needs much more space than Code 128 for the same data. Choose it when a system requires Code 39; otherwise Code 128 is the better default.
Printing it so it scans
Print dark bars on a white or light background; black on white is safest. Red, orange and yellow bars vanish under the red light most laser scanners use. Keep the quiet zones on both sides free of text and graphics.
Do not squash the height or crop the bars, and keep the size within the range the symbology allows. Thinner bars need more precise printing, so test small sizes first.
Send your printer SVG or PDF: they are vectors and stay sharp at any size. Before the run, scan a proof with a real scanner or a phone and check that the number it reads is right.
Code 39 questions
Plain Code 39 has no lower case, so we convert them.
No. We add the start and stop characters.
Yes, in automotive parts labels, US defence logistics, libraries and some badge systems.