# codabar-18

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:

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.