When Code 39 is the right choice
Code 39 is a linear barcode format often encountered in established asset and industrial workflows. Choose it when your existing scanner, label specification or receiving software explicitly asks for Code 39. The symbol identifies a value; it does not create an inventory database, look up a product or reserve a globally unique identifier. Decide which application will receive the scan before designing the label.
This generator uses the standard Code 39 character set: uppercase A–Z, digits, space and the punctuation - . $ / + %. It does not implement extended ASCII Code 39. Lowercase input is normalized to uppercase, so check the displayed encoded value if your records distinguish letter case. Keep identifiers short: Code 39 becomes noticeably wider as you add characters.
The start and stop markers are supplied by the encoder. Do not add asterisks around your value. Asterisks are control symbols in this format rather than ordinary data characters. The generator does not add an optional Mod 43 checksum. If your receiving system requires that checksum, this page is not a complete solution for that workflow.
Size and printing advice
Begin with a short sample such as ASSET-1042 and use a dark symbol on an opaque white background. Leave the blank quiet zones at both ends intact. A scanner needs those clear areas to distinguish the symbol from nearby text, borders and packaging artwork. Never crop an exported image tightly to the first and last bar.
Use the module-width control to give the narrow bars enough physical width for your printer. A preview that looks clean on a monitor can still fail after a label driver rescales it. Prefer SVG for layout work because it preserves sharp edges. Keep the aspect ratio when placing the file in a document, and avoid compressing only its width to force a long identifier onto a small label.
Print one label using the final stock and actual printer settings. Scan it into the receiving application and compare every character, including spaces and punctuation. Confirm that the scanner has Code 39 enabled and that its checksum setting agrees with this generator. A successful phone scan is helpful, but it does not prove compatibility with a configured warehouse scanner.
Last reviewed: · How we maintain these tools
Questions
Frequently asked questions
Does this generate registered retail product numbers?
No. Code 39 labels normally carry identifiers supplied by your own system. Generating UPC or EAN symbols elsewhere on this site also does not register numbers with GS1.
Why is my Code 39 label so wide?
Each character adds bars and spaces. Shorten the identifier if your system permits it, increase label width, or use Code 128 when the receiver supports that format.
Can I use lowercase letters?
The standard format here uses uppercase letters. Verify the normalized preview before printing; use Code 128 if you need to preserve lowercase text.