Blog
Wild & Free Tools

Free Code 39 Barcode Generator — Create CODE39 Barcodes Online

Last updated: April 6, 2026 5 min read

Table of Contents

  1. What Is Code 39?
  2. Industries That Still Use Code 39
  3. How to Generate a Code 39 Barcode
  4. Code 39 vs Code 128: When to Choose Which
  5. Frequently Asked Questions

Code 39 is one of the oldest and most widely deployed barcode symbologies. While Code 128 has largely replaced it for new systems, millions of existing scanners and databases still depend on Code 39 — particularly in automotive manufacturing, military logistics, and legacy inventory software.

This free generator creates Code 39 barcodes in your browser. No upload, no account, no cost. Download PNG or SVG.

What Is Code 39?

Code 39 was developed in 1974 by Intermec (originally called 3 of 9 code, because 3 of the 9 elements in each character are wide). It encodes 43 characters:

Code 39 does not encode lowercase letters. If your data contains lowercase, convert to uppercase before generating. The same SKU in lowercase will not encode correctly.

PropertyCode 39Code 128 (comparison)
Character setUppercase A-Z, 0-9, 7 symbolsFull ASCII (128 chars)
ChecksumOptional (Mod 43)Mandatory (auto-calculated)
DensityLow — wider than Code 128High — compact
Self-checkingYes (no mandatory checksum needed)No (checksum required)

Industries That Still Use Code 39

Code 39 persists in specific industries where legacy systems and standards require it:

Sell Custom Apparel — We Handle Printing & Free Shipping

How to Generate a Code 39 Barcode

  1. Open the barcode generator and select CODE39 from the format dropdown
  2. Type your data in uppercase letters, digits, and the allowed special characters only
  3. The barcode renders live — note that Code 39 barcodes are wider than Code 128 for the same data
  4. Increase bar height if needed for your label size
  5. Download as PNG or SVG

Data rules to follow:

Code 39 vs Code 128: When to Choose Which

SituationChooseReason
New inventory system, no existing constraintsCode 128More compact, full ASCII, standard checksum
Automotive parts supplier (AIAG required)Code 39Industry standard requirement
Defense contractor (MIL-STD)Code 39Military specification requirement
Legacy scanner only reads Code 39Code 39Scanner compatibility
Data contains lowercase lettersCode 128Code 39 does not support lowercase
Label space is limitedCode 128Code 128 is more compact for same data

Try It Free — No Signup Required

Runs 100% in your browser. No data is collected, stored, or sent anywhere.

Open Free Barcode Generator

Frequently Asked Questions

Does Code 39 require a checksum digit?

No — Code 39 is self-checking, meaning each character has a built-in error detection mechanism. A checksum (Mod 43) is optional and rarely used in practice. If a specific system requires Mod 43, most barcode generators offer it as an option. This generator creates standard Code 39 without the optional checksum.

Why is my Code 39 barcode so much wider than a Code 128 barcode with the same data?

Code 39 is a lower-density format — it uses more physical space to encode each character than Code 128. For the same data, Code 39 is typically 30-40% wider. If space on your label is limited, consider whether Code 128 would meet your system requirements instead.

Can I encode lowercase letters in Code 39?

No. Standard Code 39 only supports uppercase A-Z, digits 0-9, and seven special characters. There is an extended Code 39 format that supports full ASCII including lowercase, but it is rarely used in practice. If you need lowercase, use Code 128 instead.

David Rosenberg
David Rosenberg Technical Writer

David spent ten years as a software developer before shifting to technical writing. He covers developer productivity tools — JSON formatters, regex testers, timestamp converters — writing accurate, no-fluff documentation.

More articles by David →
Launch Your Own Clothing Brand — No Inventory, No Risk