Code 39 Generator

Generate Code 39 barcodes in your browser with live preview, validation, and PNG/SVG export.

Advanced options
Enter a value to see a live preview.
Options

These map directly to real generator options; anything not listed here is available under Advanced options above.

What Code 39 is

Code 39 is a self-checking linear symbology standardized as ISO/IEC 16388, encoding uppercase letters, digits, and the symbols - . $ / + % and space.

Generate it now

Enter your data to see a live Code 39 preview, then export PNG or SVG.

Valid input

Only the Code 39 character set is accepted; lowercase letters and unsupported symbols are rejected unless you use Code 39 Extended instead.

Key options

Supported options include includecheck (adds an optional Modulo-43 check digit), includetext, height, and scale.

Output and printing

Export PNG or SVG; Code 39's wider bars mean it needs more label width than Code 128 for the same data length.

Common uses

Code 39 remains common for asset tags, inventory labels, and industrial/automotive/defense identification systems with legacy scanner fleets.

Example

See the live preview above, seeded with a bwip-js-verified valid value.

Size guidance

Code 39 requires a clear quiet zone on both sides, and its lower density means labels need to be wider than Code 128 for equivalent data.

Troubleshooting

If input is rejected, check for lowercase letters or symbols outside - . $ / + % and space; switch to Code 39 Extended for full ASCII.

Related formats

Related formats: Code 39 Extended (full ASCII), Code 93, and Code 128.

FAQ

Is a check digit required for Code 39?

No -- the Modulo-43 check digit is optional in Code 39; enable includecheck if your downstream system expects one.