Free Tool
Code 39 Barcode Generator
Type capital letters, digits and a few symbols and get a Code 39 barcode as a PNG or SVG. Free, with no signup, and nothing is uploaded.
Private by design: the barcode is built in your browser. What you type is never uploaded or stored.
About this barcode
The long-established alphanumeric barcode
Code 39 is one of the oldest and simplest barcode formats. It can encode capital letters, the digits 0 to 9, the space and six symbols: hyphen, full stop, dollar sign, slash, plus and percent. Every code starts and ends with an asterisk, which this tool adds for you.
It needs no check digit by default and almost every scanner ever made can read it, which is why it is still found on identity badges, parts and military and automotive labels. The price of that simplicity is width: each character takes more space than in Code 128.
If you need lowercase letters or a more compact code, Code 128 is the modern choice.
Where it is used
Where Code 39 is used
Badges and passes. Employee, visitor and event badges with a short ID.
Automotive and industrial parts. Part numbers and lot codes on components and packaging.
Defence and government labelling. Long-standing standards in these sectors use Code 39.
Healthcare and lab supplies. Older systems and equipment that expect it.
Library and archive items. Inventory labels that older readers handle without setup.
Quick internal tracking. Anywhere you need a readable code from a basic scanner and the text is simple capitals and numbers.
Retail products. Products at a till need a retail format, such as EAN-13, rather than Code 39.
How to use it
Three simple steps
1. Type your text
Use capital letters, digits, space and – . $ / + %. Lowercase letters are changed to capitals for you.
2. Decide on the check character
Tick the box to add the optional mod-43 check character if your system or standard asks for it.
3. Download and test
Save a PNG or SVG, print it at your intended size and scan it before using it on a batch of labels.
The details
The Code 39 character set and the check character
Code 39 supports exactly 43 characters. Anything else, including lowercase letters, accents and the asterisk, which is reserved as the start and stop marker, is rejected with a message that names the character. Lowercase letters are the exception: they are converted to capitals, and the tool tells you so.
A check character is optional. The mod-43 option gives each character a value from 0 to 42, adds the values up, divides by 43 and appends the character that matches the remainder. Many systems do not use it, and a reader that expects none will treat the extra character as part of the data, so only switch it on when the receiving system asks for it.
Because Code 39 is wide, long text makes a barcode that may not fit on a label. This generator limits the text to 40 characters. If a label is narrow, consider shortening the data or moving to Code 128, which packs characters more tightly.
The number under the bars
Choose the font for the text line
The line under the bars is the human-readable text. Search the font box and pick a typeface from the ProFont fonts. It is used in the PNG download, while the SVG uses a standard font so it looks the same on any device.
Number font ideas
Pick a font for the number
Code 39 labels often look industrial, and typewriter and condensed faces fit that. Three to try:
Guides worth reading
Type guides to go with your barcode
For labels full of codes and part numbers, these guides help:
Questions
Code 39 barcode FAQ
Why are lowercase letters not allowed?
The Code 39 character set has capitals only. The tool changes lowercase letters to capitals and tells you it has done so.
Do I need the mod-43 check character?
Only if the system reading the barcode expects it. Many do not, and for them the extra character would be read as data.
What are the asterisks around the text?
They are the start and stop markers that every Code 39 barcode has. The tool adds them for you, so do not type them.
How many characters can I use?
This tool allows up to 40. Code 39 is a wide format, so long text quickly outgrows a label.
Is Code 39 still worth using?
Where older readers or standards need it, yes. For new internal systems, Code 128 is more compact and holds more characters.
More barcode formats
Make a different kind of barcode
Every format is free, private and made in your browser. Need a square code that holds a link or contact? The QR generator makes those.
Explore ProFont
Find the right font for anything
Search more than 2,000 fonts, see them in use and read the type guides.