Bulk Code 39 barcode generator

Code 39 in bulk is almost always asset tagging: a run of inventory numbers for equipment, rooms, files or tools. The symbology is undemanding, which is why it survives in that role — but a batch exposes the two things it does not do for you, namely check the value and keep the symbol narrow.

One value per line. A single line of comma- or semicolon-separated values works too. A header row (like “Value”) counts as a value and will be rejected — leave it out.

Nothing recognized yet.

Appearance
Size
Caption
Caption position
Caption alignment
Colours

Enter a value — the code appears here.

Specification

Character set
letters and digits
Length
from 1 to 43 characters
Check digit
not used by this symbology

Where this code earns its place in a batch

  • Asset tagging in a building full of old readers: Code 39 predates almost everything on the floor and is the one symbology every scanner, however ancient, decodes without configuration.
  • Runs where the tags are printed once and read for a decade — the symbology is undemanding about print quality, which matters on labels that will be scuffed and faded.
  • Short internal numbers, not long ones: the width cost per character is high, so it pays where values are six or eight characters and hurts where they are twenty.

Preparing the list

  • Generate the run with the sequence mode and a fixed-width counter, so every tag is the same length and every symbol the same width.
  • Keep the values short: Code 39 spends about sixteen modules per character, so a twenty-character asset number produces a symbol too wide for most tags.
  • Use uppercase throughout — the standard alphabet has no lowercase, and a mixed-case list either fails validation or gets folded, depending on where it came from.

What goes wrong in a batch

  • Expecting a check digit. Code 39 has none by default, so a misread digit in an asset number is indistinguishable from a correct one; if the batch matters, put a check character in the value yourself.
  • Leaving spaces inside asset numbers: the space is a legal Code 39 character, so it encodes silently and the value no longer matches the inventory row.

Frequently asked questions

Why are my Code 39 symbols so wide?
Because the symbology encodes each character with nine elements, three of them wide. That is roughly twice the width of Code 128 for the same value, and it is the reason a bulk run of long asset numbers rarely fits a small tag.
Can I mix letters and digits in one batch?
Yes — Code 39 takes uppercase letters, digits and a few symbols, and the batch will build. Keep the length uniform if the tags share a layout, since width follows the number of characters.