The codabar-18 bar code type is similar to codabar-2, but uses an extended character set.

Codabar 18 can be used to encode text of variable length by using characters from this character set:

Table 1. Character set for Codabar 18
Reference Number Character
0 0
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 -
11 $
12 :
13 /
14 .
15 +
16 a
17 b
18 c
19 d
16 t
17 n
18 *
19 e

The first character of any code must be either 'a', 'b', 'c' or 'd'. The last character of any code must be either 't', 'n', '*' or 'e'. All other characters must have an ordinal value less than 16.

The last but one character is the checksum character that is calculated as follows:CS=16-(Sum(i=1 to n of Ref(i))) mod 16) Where Ref(i) is the reference number of the character i, and n is the total number of characters. Example: codeValue="a37859n"CS=16-((16+3+7+8+5+9+17) mod 16),CS=16-(65 mod 16),CS=15 Looking up reference number 15 yields the character '+'. The full code value including checksum is therefore: codeValue="a37859+n"

When the system is supplied with a value that is one digit shorter than specified by noDigits then the check digit is automatically calculated.

The nominal height is 20mm. The nominal width of a thin bar is THINBARWIDTH=0.165mm. The width of a character is 2.095mm. Between digits a gap with the width GAPWIDTH=THINBARWIDTH/ thinToGapRelation is drawn. The padding on both sides measures 10*THINBARWIDTH.