Code 39 Barcode Generator

Converters & calculators·Free · in browser

Code 39 Barcode Generator

Generate a Code 39 barcode from uppercase letters, digits and a handful of symbols, and download it as a PNG. Free, no signup, runs in your browser.

Code 39 Barcode Generator
All tools

Code 39 is the older self-checking linear barcode still required by many industrial, defence and automotive systems. It encodes uppercase A-Z, digits 0-9 and the symbols - . $ / + % and space, wrapping the value in the start and stop asterisks scanners look for.

Runs entirely in your browser · no signup · nothing is uploaded · updated 2026-09-08

Symbology

Code 39

Uppercase, digits and - . $ / + % space.

How to use it

  1. 1.Type the value in uppercase - lowercase is not part of the Code 39 character set.
  2. 2.The start and stop characters are added automatically; do not type asterisks yourself.
  3. 3.Download the PNG and print it at 300 DPI or higher without rescaling.

Code 39 character set

44 characters, plus the asterisk reserved as the start and stop delimiter. Anything outside this set - lowercase especially - cannot be encoded.

GroupCharacters
LettersA-Z, uppercase only
Digits0-9
Symbols- . $ / + % and space
Reserved* as start and stop, never in your data

Frequently asked questions

Should I use Code 39 or Code 128?

Code 128 unless something specifically demands Code 39. Code 128 handles lowercase, is roughly half the width for the same data, and is read by everything modern. Code 39 survives because of legacy specs - defence logistics, some automotive and healthcare systems - not because it is better.

Why is my lowercase text rejected?

Standard Code 39 has no lowercase. There is an extension, Full ASCII Code 39, that encodes lowercase as two-character escape sequences, but scanners must be configured for it and many are not. Uppercase your value, or switch to Code 128.

Do I need the asterisks?

They are the start and stop characters and are added for you. If you type them into the value you will produce a barcode with doubled delimiters that most scanners refuse.

Does Code 39 have a check digit?

Optionally - a modulo-43 check character. It is not part of the base spec and most implementations omit it, so only add one if the receiving system explicitly asks for it.

Why is Code 39 so wide?

Every character is a fixed nine elements, three of them wide, with no compression for digits. A 10-character value produces a noticeably longer symbol than the same value in Code 128 subset C.

What is the wide-to-narrow ratio?

Between 2:1 and 3:1, with 3:1 scanning most reliably. Below 2:1 scanners cannot tell wide bars from narrow ones and read rates fall away.

Can Code 39 encode spaces?

Yes, space is a valid character in the set. It is one of the few symbologies where a space inside the value is entirely legitimate.

Is Code 39 the same as Code 3 of 9?

Yes - two names for the same symbology. The name comes from the encoding: nine elements per character, three of them wide.

Tools that pair with this one

Built something?

RankCert is a weekly launch board where products rank on domain control we verify ourselves - not upvotes. Listing is free and the link is dofollow whether or not you display our badge.