What is Barcode Generator Code39?

Code 39 Barcode Generator creates barcodes using the Code 39 symbology, the most widely used barcode format in non-retail industries. It encodes uppercase letters, digits, and a few symbols — enough for asset tags, ID badges, and military or industrial labels.

Code 39 has been around since 1974 and remains standard in industries where lifetime durability matters more than density: military depot tagging, vehicle VIN labels, blood bank vials, library card catalogues. It encodes 43 characters (A-Z, 0-9, and seven punctuation marks) and is self-checking, so a single misread bar is detected without a separate check digit.

How to use

  1. Type the text to encode. Basic Code 39 covers A-Z, 0-9 and - . $ / + % and space; turn on Full ASCII to add lowercase letters and any symbol.
  2. Preview the barcode with optional start/stop characters displayed. Adjust width and height for your label size.
  3. Download a single barcode as PNG, SVG, or PDF, or copy it straight to your clipboard. Use Batch mode to generate many at once and save them all as a ZIP or a print-ready PDF sheet.

When to use

  • Tagging fixed assets like laptops, monitors, and tools where the label has to survive 10+ years.
  • Library or archive cataloguing where existing scanners and software expect Code 39.
  • Vehicle parts or service-bay tickets in dealerships that still run legacy DMS systems.

Result

Enter an asset tag number like 'ASSET-00142' to generate a Code 39 barcode for equipment tracking labels.

FAQ

Why does Code 39 only accept uppercase letters?
The original 1974 spec covered just 43 symbols to keep the alphabet small enough for the bar/space pattern. Full ASCII Code 39 (also called Extended Code 39) adds lowercase letters and symbols through two-character escape pairs — flip on Full ASCII mode here to use them, just make sure your scanner is set to read Full ASCII too.
What's the * around my barcode for?
Asterisks are the start and stop characters of Code 39. The scanner uses them to detect where the barcode begins and ends. The library adds them automatically and most scanners strip them from the output, so you never see them in the decoded data.
How much wider is Code 39 than Code 128 for the same data?
Roughly 30 to 50% wider, depending on content. Each Code 39 character uses 9 bars (5 black plus 4 white) with extra inter-character gaps, while Code 128 packs more information into each pattern. For tight label space pick Code 128 instead.
Does it support a check digit?
Yes. Code 39 has an optional Mod 43 check digit, handy for medical or military work, though the basic format is already self-checking thanks to its fixed-ratio bar widths. Leave the toggle off for the plain version most scanners accept, or switch it on to append the check character.
Why does my scanner show characters before and after the data?
If you see asterisks (*) wrapping the text, the scanner is not configured to strip start/stop characters. Most scanners have a setting called Transmit Start/Stop or similar to turn that off. Check the scanner manual for the exact menu name.

Related Tools