Barcodes are not only for shops. Warehouses label boxes with them, offices tag equipment with them, libraries stick them on books, and small businesses track stock with them, all without any special software. Code 39 is the oldest barcode format still in everyday use, and it survives because it is simple: it encodes capital letters, digits, and a handful of symbols, and almost every scanner ever made can read it. This generator turns your text into a printable Code 39 barcode, free, in your browser.
Code 39 gets its name from its structure: each character is drawn from nine elements, five bars and four spaces, of which three are wide and six are narrow. That pattern is what gives the format its other name, Code 3 of 9. The character set covers the capital letters A to Z, the digits 0 to 9, and the symbols dash, dot, space, dollar, slash, plus, and percent. Lowercase letters are not part of the format, so this tool converts them to capitals automatically, and any other character is refused rather than silently dropped.
Here is a worked example. Enter HELLO-123 and the tool draws a barcode with start and stop characters at each end, which scanners use to recognise where the code begins and ends, plus the text printed underneath so a person can read it too. Enter a stock code like BOX-0042 and you get a label-ready barcode for a storage box. Enter an asset tag like LAPTOP-17 and you get a tag for office equipment. Short values scan best: a barcode under twenty characters prints large enough to scan from a normal distance, while a very long value prints as thin bars that cheap scanners struggle with.
Code 39 has no built-in check digit in its basic form, which is both a strength and a weakness. It is a strength because any text can be encoded without extra maths, and a weakness because a misprinted bar can change one character into another without the scanner noticing. For critical uses, like medical or high-value stock, many systems add a modulo-43 check character, but for labels, assets, and internal tracking, the basic form is standard practice, and a quick visual check of the printed text underneath the bars catches most errors.
Printing quality matters as much as the code itself. Print at 100 percent scale with a laser printer if possible, on white or light labels, with dark bars and a clear blank margin at each end. Do not stretch the barcode to fit a label, because stretching changes the widths of the wide and narrow bars, and scanners judge characters by the ratio between those widths. If a barcode must fit a small label, shorten the text instead of shrinking the code, because a short code printed large scans far better than a long code printed small.
Code 39 is not the best choice for every job, and knowing its limits saves trouble. It cannot encode lowercase letters or most punctuation, it is longer than Code 128 for the same text, and it cannot hold as much data as a QR code. If you need lowercase text, long serial numbers, or a web address, use Code 128 or a QR code instead. But if you need a simple label that any old scanner in a warehouse, a school, or a library can read, Code 39 is the format with the widest compatibility, and that compatibility is exactly why it is still everywhere.
Use this generator for storage boxes, equipment tags, library cards, event badges, or any small stock system you run yourself. Type the text, check that the tool accepts it, print a test label, and scan it with a phone before printing the full set. A barcode you print yourself costs almost nothing and turns a shelf of unmarked boxes into an organised system you can scan, and this tool gives you that barcode in seconds.
