QRmkr

Code 39 Barcode Generator

Code 39 is the older alphanumeric barcode still required by badge systems, automotive and defence specs. Type your text - it is upper-cased automatically - and download.

A-Z, 0-9, space and - . $ / + %. Lower case becomes upper case. Up to 40 characters.

Size & options

Need a code that people scan with a phone?

Barcodes are for tills and warehouse scanners. For links, menus and posters, make a free QR code instead - or a dynamic one you can edit after printing.

Code 39 barcode for PART-A1

SVG for print, PNG for screens. Free, no watermark, nothing uploaded.

Need a different type? All barcode types

What Code 39 can and cannot hold

Forty-three characters: the digits, the upper-case alphabet, space, and the symbols minus, period, dollar, slash, plus and percent. No lower case and no other punctuation. Each character is nine elements, three of them wide, framed by an asterisk start and stop character that scanners strip. It is self-checking - a single misprinted bar cannot turn one valid character into another - which is why it never needed a check digit. Specs that want one anyway (LOGMARS, HIBC) use a mod-43 check character, which this generator can append.

The price is size. A Code 39 character is 13 modules wide against 11 for Code 128, and digits cost twice what they do in Code 128's set C. For new designs Code 128 is smaller for the same content and supports every character Code 39 lacks. Choose Code 39 when a standard, a customer or an existing scanner configuration demands it.

Where it is still required

US Department of Defense labelling (MIL-STD-129 and LOGMARS), the automotive industry's AIAG B-4 shipping labels, the Health Industry Bar Code standard on medical devices, US pharmacy and hospital wristbands, and countless ID-badge and asset-tag systems that were set up in the 1990s and still read only Code 39. It is also the default in many label programs, so a legacy system that reads 'barcodes' with no further detail usually means Code 39.

Printing it

Wide-to-narrow ratio: this generator uses 3:1, the top of the 2:1 to 3:1 range the standard allows, because it is the most tolerant of print gain. Quiet zones of ten X on each side. Minimum X dimension 0.19 mm for a good laser printer, and a height of at least 15% of the width or 6.35 mm, whichever is larger. Because Code 39 symbols get wide fast, plan the label around the longest value you will ever print, not a typical one.

Other barcode types

  • Free Barcode Generator - Type the number or text, pick the symbology, download a print-ready SVG or PNG.
  • Code 128 Barcode Generator - Code 128 is the workhorse of logistics and inventory: any ASCII text, compact digits, a built-in check symbol, and readable by every scanner.
  • EAN-13 Barcode Generator - EAN-13 is the barcode on nearly every product sold outside North America, and scanners everywhere read it.
  • UPC Barcode Generator - UPC-A is the 12-digit barcode on products sold in the United States and Canada.
  • Data Matrix Code Generator - Data Matrix is the tiny 2D code on electronics, medical devices and machined parts.
  • ITF-14 Barcode Generator - ITF-14 is the barcode on cases and cartons: a 14-digit GTIN in interleaved 2 of 5, framed by thick bearer bars so it prints reliably on corrugated board..

FAQ

Why do my letters come out upper case?

Code 39 has no lower-case characters. The tool upper-cases your input rather than rejecting it, and the printed text shows what was actually encoded.

Should I turn the check digit on?

Only if the system reading the code expects it, because a scanner not configured for it will show the check character as part of the data. LOGMARS and HIBC want it; badge and inventory systems usually do not.

What are the asterisks in the printed text?

The start and stop characters. Scanners strip them and return only the text between. Some specs want them printed, some do not; the download shows them so the encoded structure is visible, and you can crop the text line or turn it off.

Is there a full-ASCII Code 39?

Yes, an extension that spends two characters on each symbol outside the basic set, and it is not supported here. If you need lower case or other punctuation, Code 128 encodes it in half the space.

Codes people scan with a phone