Create Code 39 barcodes for legacy systems
Create Code 39 barcode artwork for simple alphanumeric labels.
Create your barcode
ValidateWhen Code 39 still fits
Code 39 is older and less dense than Code 128, but it is still useful in warehouses, labs, libraries and equipment labels where scanners and internal systems already expect it.
Keep Code 39 readable
Code 39 is forgiving, but it becomes wide very quickly.
- Use short values when the label space is limited.
- Stick to the character set your scanner expects.
- Give the label enough width before shrinking the bars.
For long internal IDs, Code 128 may be a better fit.
Create a Code 39 barcode
- Enter the alphanumeric value your system expects.
- Keep the value short because Code 39 uses more space than Code 128.
- Generate the barcode and check whether the label still fits your physical space.
- Download SVG or PNG depending on your label workflow.
- Scan a printed sample with the scanner used in the actual environment.
Where Code 39 works
- Legacy asset tags
- Library and lab labels
- Equipment IDs with short values
Code 39 label checks
- Use Code 39 when your existing system or scanner requires it.
- For dense labels with longer values, Code 128 may be a better choice.
- Keep human-readable text visible for library, lab and equipment labels.
Code 39 mistakes to avoid
- Choosing Code 39 for long values that would fit better in Code 128.
- Using lowercase or unsupported characters when the scanner workflow expects classic Code 39.
- Printing narrow labels without checking whether the wider Code 39 symbol still fits.
Code 39 barcode questions
When should I use Code 39?
Use it for legacy systems, asset labels, libraries, labs and workflows where Code 39 is already required.
Is Code 39 good for long values?
Usually no. Code 39 can become wide quickly. Code 128 is often better for longer internal values.
Can Code 39 include letters?
Yes. It supports uppercase letters, digits and a limited set of symbols.
Do I need to type the start and stop asterisks?
Usually no. The barcode generator handles the Code 39 start and stop pattern for the artwork. Enter the value your system expects people or scanners to read.
What characters can Code 39 encode?
Standard Code 39 supports uppercase A through Z, digits 0 through 9 and a few symbols: space, dash, period, dollar sign, slash, plus and percent. It does not support lowercase letters unless you use Extended (Full ASCII) Code 39.
Why do some older systems still require Code 39?
Code 39 was one of the first alphanumeric barcode formats and became deeply embedded in government, military and legacy industrial systems. Replacing it would mean updating scanners, software and training, so many organizations keep using it.
Does Code 39 have a check digit?
A check digit is optional in Code 39, not mandatory like in Code 128. Some systems require it and some do not, so check your workflow specifications before generating the barcode.
More tools for internal labels
Free Barcode Generator
Pick a barcode format, enter a value and download print-ready artwork with check digit validation.
Code 128 Barcode Generator
Create Code 128 barcodes for inventory, SKU labels and shipping references.
Barcode Scanner Online
Decode a barcode from a label, package or screenshot to check the value before it goes to print.
QR Code Label Generator
Prepare QR codes for label-style printing and repeated physical placement.