[{"data":1,"prerenderedAt":133},["ShallowReactive",2],{"page-en-root-tools/code-39-barcode-generator":3},{"content":4,"isFallback":94,"alternates":132},{"id":5,"title":6,"body":7,"description":92,"extension":93,"heroDark":94,"keywords":95,"locale":96,"meta":97,"navigation":124,"path":125,"seo":126,"sitemap":127,"stem":129,"translationKey":130,"__hash__":131},"content/tools/code-39-barcode-generator.md","Free Code 39 Barcode Generator — Batch-Ready",{"type":8,"value":9,"toc":89},"minimark",[10,15,20,28,57,60,67,83],[11,12],"essential-hero3-section",{"description":13,"title":14},"Type a value, paste a list, upload a CSV, or auto-number a sequence — every entry renders as a Code 39 barcode in your browser. Download one PNG, the batch as a ZIP, or a print-ready Avery sheet. No sign-up, no watermark.","Free \u003Cspan class=\"kw-swipe-d\">Code 39 barcode generator\u003C/span>",[16,17],"tools-bulk-barcode-generator",{"default-mode":18,"default-symbology":19},"single","CODE39",[21,22],"essential-call-to-action-section",{":primaryButton":23,"subtitle":24,"title":25,"className":26},"{\"text\":\"Get Free Asset Management\",\"url\":\"/free-asset-tracking\"}","UNIO24 tracks what the label goes on — equipment, tools, assets, materials, inventory. Each item gets a full record: maintenance history, current location, stock levels and availability, who has it. Scan the tag with any phone.","Labeling something physical?",[27],"cta-tight-bottom",[29,30,32],"essential-content-section",{"anchorId":31},"code-39-format",[33,34,36,45,48],"template",{"v-slot:description":35},"",[37,38,39,40,44],"p",{},"Code 39 is from 1974, and by every technical measure it should be gone. It fits 43 characters — uppercase letters, digits, and ",[41,42,43],"code",{},"- . $ / + %"," with space — takes up roughly a third more label width than Code 128 for the same value, and its check digit is optional, so most systems simply skip it. And yet it keeps turning up in specs: military logistics standardized on it decades ago (MIL-STD-1189, and Code 39 still appears across LOGMARS-era labeling), the automotive supply chain adopted it through AIAG, and a warehouse full of scanners and label software from that era reads it with zero configuration. That last part is the whole reason to use it in 2026 — when the spec, the customer, or the twenty-year-old scanner fleet says Code 39, you print Code 39.",[37,46,47],{},"A few habits of the format worth knowing before a batch run. Every symbol is framed by asterisks — they're start/stop markers the encoder adds, so don't type them into your values; a scanner strips them on read and returns just your data. Lowercase letters don't exist in the base character set; this generator rejects them at validation rather than silently uppercasing, because a value that changes case between your spreadsheet and your scan is how two systems end up disagreeing about the same asset. And there's no mandatory checksum — Code 39 is self-checking at the character level, which catches misprints but not typos. If the receiving system wants the optional mod-43 check character, generate inside that system's tooling; adding one blindly gives every scan a trailing character nobody expects.",[37,49,50,51,56],{},"Starting a new tagging scheme from scratch, with no legacy hardware to appease? Use ",[52,53,55],"a",{"href":54},"/tools/code-128-barcode-generator","Code 128"," instead — denser, lowercase-capable, always checksummed. The side-by-side is on that page.",[58,59],"essential-related-barcode-tools-section",{},[61,62],"essential-faq-section",{":contactLink":63,":faqs":64,"description":65,"title":66},"{\"text\":\"Tagging assets at scale?\",\"callActionText\":\"Talk to sales\",\"url\":\"/contacts\"}","[{\"title\":\"Encoding & printing\",\"items\":[{\"question\":\"Why does the tool reject my lowercase values?\",\"answer\":\"Base Code 39 has no lowercase — its 43 characters are uppercase A–Z, digits, and - . $ / + % with space. Rather than uppercase your data silently, the row flags it so you decide: uppercase the source values, or switch to \u003Ca href=\\\"/tools/code-128-barcode-generator\\\">Code 128\u003C/a>, which encodes both cases.\"},{\"question\":\"Do I need to add the asterisks around the value?\",\"answer\":\"No — the * start and stop characters are part of the symbol, not the data. The encoder adds them, the scanner removes them. Type only the value you want back from a scan.\"},{\"question\":\"Why are my Code 39 labels so wide?\",\"answer\":\"That's the format: each character spends nine elements, wide and narrow, and there's no numeric compression. A 10-character value that fits a small Avery cell in Code 128 may overflow it in Code 39. Shorten values, print smaller with a 300 dpi check, or use the denser format if your scanners allow.\"},{\"question\":\"Does this generator add a mod-43 check digit?\",\"answer\":\"No. Most Code 39 deployments run without one, and a check character added where the receiving system doesn't expect it shows up as a stray trailing character in every scan. If your spec requires mod-43, the system enforcing that spec should generate it.\"}]}]","The ones that surface once the labels meet the scanners.","Code 39 — common questions",[29,68,70],{"anchorId":69},"code-39-privacy",[33,71,72,75],{"v-slot:description":35},[37,73,74],{},"Values render on a local canvas in your browser and never reach a server; the ZIP and PDF libraries load only when you click a download. Batches run to 500 rows.",[37,76,77,78,82],{},"If the scan should open a record instead of just echoing an ID, that's ",[52,79,81],{"href":80},"/product/tagging-and-smart-labeling","asset tagging in UNIO24"," — and if you're mid-migration from a legacy Code 39 system, existing labels keep working: tag IDs bind on import, no relabeling pass required.",[21,84],{":primaryButton":85,"subtitle":86,"title":87,":secondaryButton":88},"{\"text\":\"Start for Free\",\"url\":\"https://my.unio24.com/signup?utm_source=unio24-site&utm_medium=referral&utm_campaign=tools&utm_content=tools-code-39-barcode-generator\"}","UNIO24 reads the Code 39 tags you already have and turns them into a live asset register — scan a label and the history opens on a phone. Start free with 50 assets.","Old format, live register","{\"text\":\"Book a Demo\",\"url\":\"/demo\"}",{"title":35,"searchDepth":90,"depth":90,"links":91},2,[],"Generate Code 39 barcodes in your browser, one code or a CSV batch of 500. Instant preview, then PNG, ZIP, or a print-ready Avery label sheet.","md",false,"code 39 barcode generator, code 39 generator, free code 39 barcode generator, code 3 of 9, mil-std-1189, code 39 asset tag","en",{"schemaOrg":98},[99,110],{"@type":100,"name":101,"applicationCategory":102,"operatingSystem":103,"description":104,"url":105,"offers":106},"WebApplication","UNIO24 Code 39 Barcode Generator","UtilitiesApplication","Any","Free browser-based Code 39 barcode generator for single codes or batches, with PNG, ZIP, Avery PDF, and print export.","https://unio24.com/tools/code-39-barcode-generator",{"@type":107,"price":108,"priceCurrency":109},"Offer","0","USD",{"@type":111,"itemListElement":112},"BreadcrumbList",[113,118,121],{"@type":114,"position":115,"name":116,"item":117},"ListItem",1,"Home","https://unio24.com/",{"@type":114,"position":90,"name":119,"item":120},"Tools","https://unio24.com/tools",{"@type":114,"position":122,"name":123,"item":105},3,"Code 39 Barcode Generator",true,"/tools/code-39-barcode-generator",{"title":6,"description":92},{"loc":125,"lastmod":128},"2026-08-30T07:00:20+03:00","tools/code-39-barcode-generator",null,"P2gGXjw1mCDaK5s8gJGtkUJjDxYRSJxl_42r4weEYVk",[],1788397928893]