Code 39 barcode generator

Enter a value to enable download.

Your barcode preview appears here after valid input.

No code generated.

Size and human-readable text

Exports: 300 pixels per inch. Module 4–6 px (0.339–0.508 mm); bar height 280–600 px. Quiet zones: at least 12 modules each side. Print at 100% scale; test before use. Retail/ISBN human-readable digits stay on.

Make a batch from a list or CSV

Code 39 is a variable-length barcode often used for identifiers in systems that specifically support it. Basic Code 39 encodes uppercase letters, numbers and a small set of punctuation. It is not a substitute for a retail UPC-A or EAN-13 barcode.

Check the receiver's requirements before choosing the format. Matching the scanner's symbology setting is only part of the job; the receiving software must also understand the value.

Basic characters you can encode

Character group Basic Code 39 data
Letters A–Z
Digits 0–9
Other data characters Space, hyphen, period, dollar sign, slash, plus and percent

That is a 43-character data set. An asterisk is normally used to show the start/stop character in human-readable notation; it is not ordinary data in basic Code 39. The generator's encoder should handle the framing rather than asking you to wrap your input in asterisks.

Lowercase letters are not in the basic character set. Extended or Full ASCII Code 39 uses character pairs and requires compatible scanner decoding; it must not be assumed merely because a text field accepts lowercase input.

Know whether a check character is required

Code 39 has an optional modulo-43 check character. Some receiving systems require it and others do not. The generator and scanner must agree on that setting, including whether the scanner returns the check character to the software.

The current format specification is ISO/IEC 16388:2023. The basic character set and optional-check structure are also documented in the publicly accessible earlier ISO specification preview.

Leave room for a readable label

Long Code 39 values can produce wide symbols. Keep the quiet zones clear and choose a label size that suits the printer and scanner. Do not squeeze the image horizontally to force a long identifier into a short space.

If the receiving system also accepts Code 128, compare that format for mixed-case text or compact numeric encoding. Do not change an established format without checking the receiving system first.

Method and transparency

Last updated: 6 November 2026. Local technical preview only.

About this tool · Browser processing and privacy · Contact