Skip to content
PrintMyLabels

Linear symbology

Codabar

Codabar is a self-checking numeric symbology from 1972 that is still in daily use in blood banks and libraries, kept alive by the cost of replacing the systems built around it. Each symbol is wrapped in a start and stop character chosen from A, B, C or D.

Specification

These are the values the editor enforces while you design, not figures collected from elsewhere — the same numbers its quiet-zone and resolution checks run on.

Codabar specification: minimum X-dimension, quiet zone and dimensionality
PropertyValueIn context
Minimum X-dimension0.191 mm0.0075 in · 8 thou
Quiet zone10 modules1.91 mm at the minimum X-dimension
DimensionalityLinear (1D)Read by laser or imager

Codabar at 203, 300 and 600 dpi

A printer can only place whole dots, and 0.191 mm is not a whole number of them at any of these resolutions. What changes is how much a single dot of rounding costs you as a share of the narrow bar.

Codabar narrow bar in printer dots at 203, 300 and 600 dpi
ResolutionNarrow bar in dotsPrinted asRounding error
203 dpi1.532 dots31%
300 dpi2.262 dots11%
600 dpi4.515 dots11%

What Codabar encodes

Digits 0 to 9 and the characters minus, dollar, colon, slash, full stop and plus. The value must begin and end with one of the letters A, B, C or D, which act as start and stop characters and are not part of the data.

Where it is used

  • Blood bank and transfusion service labelling
  • Library circulation and membership cards
  • Photo processing and film envelope tracking

Check digit

None is required. Codabar is self-checking, so a single misread element is unlikely to decode as a different valid character. Some industries layer their own check digit on top as part of their numbering scheme rather than as a feature of the symbology.

How Codabar fails in practice

  • Omitting the start and stop letters, which makes the value invalid rather than merely unusual.
  • Assuming the start and stop characters carry meaning. Different industries assign them different conventions, so a scanner configured for one may strip or reject the letters another expects.
  • Choosing it for a new system. Its density is poor and its character set is narrow; it is here for compatibility, not because it is a good default.

When to use something else

  • Code 128 — choose it instead when you are designing a new system and are not constrained by existing Codabar equipment.
  • Code 39 — choose it instead when you need letters as well as digits on comparably old equipment.

Questions about Codabar

What do the A, B, C and D characters mean?
They are start and stop characters rather than data. Conventions vary by industry, and some scanners are configured to strip them before passing the value on, so match whatever the receiving system expects.