Code 39 barcode generator

Code 39 encodes capital letters, digits and a few symbols, and almost every barcode scanner reads it. Type your text and download or print.

Options

Description

Download

Logo in the middle

QR codes only. Your logo stays on your device.

Error correction switches to High so the code still scans. Test-scan one code before printing many.

Link tracking (UTM)
Printing

In the print dialog choose 100% / “Actual size” and turn off headers and footers. Print a test page on plain paper and hold it against a label sheet first.

Your code

What is Code 39?

Code 39 (also called Code 3 of 9) is one of the oldest alphanumeric barcodes, from the 1970s. Each character is drawn with 9 bars and spaces, 3 of them wide, which makes it easy to print and to read even with simple scanners. You can put any content in it that fits the character set; no GS1 number is needed.

Where is it used?

  • Industry and manufacturing: part numbers and work orders.
  • ID badges and membership cards, often read by older scanners.
  • Inventory and asset tags in systems set up for Code 39.
  • Healthcare (the HIBC labelling standard) and US defence logistics (LOGMARS), which add a check character to Code 39.

How to make a Code 39 barcode

  1. Type the content: capital letters, digits, spaces and - . $ / + %. Lower-case letters are turned into capitals.
  2. Don’t type the asterisks: the start and stop characters (*) are added automatically and are not shown under the bars.
  3. If your system needs a check character, tick Add a modulo 43 check character.
  4. Download as SVG or PNG, or switch to Batch from CSV or the numbered series for many labels. With Code 39 chosen in the code type list, the check character setting applies to every Code 39 code in the batch.

Characters and the check character

Code 39 has 43 characters: A–Z, 0–9, space and - . $ / + %. Every code starts and ends with *, which scanners use to find the code. Code 39 is self-checking, so a check character is optional; some systems (HIBC, LOGMARS) require a modulo 43 check character at the end. Tick Add a modulo 43 check character and the generator calculates it and adds it; it is also shown in the text under the bars. Example: in CODE39 the characters count C 12, O 24, D 13, E 14, 3 and 9, which add up to 75; 75 divided by 43 leaves 32, the value of W, so the barcode holds CODE39W. Only tick it if your system expects it: a scanner set up without the check reads the W as part of the content.

Sizes and printing

  • Code 39 is wide: each character takes about 16 narrow bars, against 11 in Code 128, so the same text makes a noticeably wider barcode.
  • For printing, use a bar-width setting of at least 2 and keep a white margin of at least 10 narrow bars on both sides; barcodes made here include it.
  • Keep the codes short; long codes become too wide for labels and harder to scan.

Code 39 or Code 128?

Code 128 encodes all ASCII characters (including lower case) and makes a much narrower barcode for the same content, so it is the better choice for new labels. Use Code 39 when an existing scanner, system or customer specification asks for it.

Frequently asked questions

What characters can Code 39 encode?

Capital letters A–Z, digits 0–9, space and the symbols - . $ / + %. Lower-case letters you type are turned into capitals; other characters, such as ä, @ or *, aren’t allowed.

Do I need to add the asterisks?

No. The * start and stop characters are added automatically. Don’t type them yourself.

Does Code 39 need a check character?

Usually not: Code 39 is self-checking. Some standards, such as HIBC in healthcare, require a modulo 43 check character; tick “Add a modulo 43 check character” and the generator adds it.

Code 39 or Code 128?

Code 128 for new labels: it is narrower and supports all ASCII characters. Code 39 when a system or customer requires it.

Do I need to register Code 39 barcodes?

No. Code 39 has no central numbering, so you choose the content yourself, for example part numbers or employee IDs.