Codabar is a linear barcode symbology developed in 1972 by Pitney Bowes Corp. [1] It and its variants are also known as Codeabar, Ames Code, NW-7, Monarch, Code 2 of 7, Rationalized Codabar, ANSI/AIM BC3-1995 or USD-4. Although Codabar has not been registered for United States federal trademark status, its hyphenated variant, Code-a-bar, is a registered trademark.[2]
Codabar was designed to be accurately read even when printed on dot matrix printers for multi-part forms such as FedEx airbills and blood bank forms, where variants are still in use as of 2007[update]. Although newer symbologies hold more information in a smaller space, Codabar has a large installed base in libraries. It is even possible to print Codabar codes using typewriter-like impact printers, which allows the creation of many codes with consecutive numbers without having to use computer equipment. After each printed code, the printer's stamp is mechanically turned to the next number, as for example in mechanical mile counters.
Check digit
Because Codabar is self-checking, most standards do not define a check digit.[3]
Some standards that use Codabar will define a check digit, but the algorithm is not universal. For purely numerical data, such as the library barcode pictured above, the Luhn algorithm is popular.[4]
When all 16 symbols are possible, a simple modulo-16 checksum is used.[5] The values 10 through 19 are assigned to the symbols –$:/.+ABCD, respectively.
Encoding
Each character comprises 7 elements, 4 bars and 3 spaces, and is separated from adjacent characters by an additional narrow space. Each can be either narrow (binary value 0) or wide (binary value 1). The width ratio between narrow and wide can be chosen between 1:2.25 and 1:3. The minimum narrow width varies with the specification, with the smallest being 0.0065 inches (0.165 mm), allowing 11 digits per inch to be encoded.[6]
The characters are divided into three groups, based on the number of wide elements:
The basic 12 symbols (digits 0–9, dash, and $) are encoded using all possible combinations of one wide bar and one wide space.
An additional 4 symbols (:/.+) are encoded using 3 wide bars and no wide spaces.
4 start and stop symbols (designated ABCD, or in some specifications, EN*T) are encoded using one wide bar and two wide spaces.
The original Pitney-Bowes specification actually varies the narrow:wide width ratio to make all characters the same width. That is, characters with two wide elements use a 3:1 ratio, while characters with three wide elements use a 2:1 ratio, so all characters are 10 narrow elements wide (plus the inter-character space makes 11). "Rationalized codabar" uses a fixed ratio and allows the character widths to vary.
The alphabet characters A, B, C, D (in some specifications, E, N, asterisk, and T) are used to mark the beginning and end of the barcode. They do not appear in the body of a Codabar string. The 16 possible combinations of start and stop symbol may be used to distinguish different applications. For example, the library barcode illustrated begins with A and ends with B. FedExtracking number barcodes, on the other hand, begin with B and end with D.
Codabar symbols
Spaces
Bars
0001
0010
0100
1000
001
0
lll l
1
lll l
4
lll l
5
lll l
010
2
ll ll
–
ll ll
$
ll ll
9
ll ll
100
6
l lll
7
l lll
8
l lll
3
l lll
011
C or *
ll l l
D or E
ll l l
A or T
ll l l
(reverse B/N)
110
B or N
l l ll
(reverse A/T)
(reverse D/E)
(reverse C/*)
1110
1101
1011
0111
000
.
llll
/
llll
:
llll
+
llll
Although there are 12 combinations of one wide bar (four choices) and two wide spaces (three choices), the start/stop codes are limited in two ways:
The wide spaces are required to be adjacent (so only 011 and 110 are allowed; 101 is not), and
The reversed forms of the valid codes are not valid, to identify the direction in which to read the code.
EAN MediaWiki extension, a MediaWiki extension, visualizing Codabar/Code39/EAN-13/EAN-8/UPC-A barcodes by specifying only the numbers/symbols in the wiki-text.