| Definition
Code 128Der Code 128 untergliedert sich in drei
Untercodes: 
  |  | Charset A: Unterstützt ASCII 32 mit 63 (also
    Satzzeichen, nur Großbuchstaben und Ziffern und etwas mehr) und ASCII 0-31
    in einem eigenen Bereich |  |  | Charset B: unterstützt ASCII 32 mit 127 (also
    Satzzeichen, Groß- und Kleinbuchstaben, Ziffern und etwas mehr) |  |  | Charset C: unterstützt nur Ziffern, wobei zwei
    Ziffern in einem Barcode-Element abgebildet werden. Die Zahlenfolge muß
    daher längenmäßig geradzahlig sein |  Zu allen drei Charsets gibt es noch ein paar wenige
Auswahlcodes (damit läßt sich innerhalb eines Barcodes zu einem anderen
Charset wechseln und zurück).
  Code128 verwendet die Modulo 103 Prüfmethodik. Definiert
in ISO 15417.
 Da Code 128 B und C am häufigsten verwendet werden, wurden in
HIT nur diese beiden implementiert. AufbauJeder Barcode beginnt mit dem Startcode und endet mit einem
Checkcode und dem
Stopcode: <Start><Zeichen>[<Zeichen>
...]<Checkcode><Stop>
 Die Zeichenfolge muß
in Charset C eine geradzahlige Länge haben, d.h. es wird entweder vorne- oder
hintendran eine 0angehängt (je nach Anwendungsfall). CheckcodeDer Checkcode entspricht einer Prüfziffer. Damit wird
sichergestellt, daß das Barcode-Lesegerät den gelesenen Code auch richtig
gelesen hat. Dieser Code ist nicht Teil des dargestellten Wertes und muß
ignoriert werden (dient nur der Prüfung während des Lesevorganges)! Der Wert
des Checkcodes darf somit auch nicht als lesbares Zeichen unterhalb des Barcodes
auftauchen. Das "Modulo 103"-Verfahren für den
Checkcode berechnet
sich wie folgt:
 
  
    Den Startcode (für z.B. Code 128 B  Start B)
    und alle
    Datenzeichen in numerische Werte umsetzen (linke Spalte der Zeichensatztabelle)
    Jedem Datenzeichen (nicht dem Startcode) eine Gewichtung
    zuordnen. Diese beginnt beim ersten Zeichen bei 1 und erhöht sich bei jedem
    weiteren Zeichen um 1.
    Multipliziere die Datenzeichen mit deren Gewichtungen
    Addiere alles zusammen (Startzeichen-Wert plus Ergebnisse
    der Multiplikationen), dividiere durch 103 und ermittle den Rest.
    Anhand der Zeichensatztabelle das
    zum Rest gehörige Strichmuster für die Darstellung des Barcodes ermitteln. BeispieleBeispiel LOM 040000769458734(=AT 76 9458
734) im Charset B: Das letzte Zeichen 3(vom Beispiel) darf nicht als Wert unterhalb
des Barcodes ausgegeben werden. Beispiel Betriebsnummer 276153550330002im Charset C: b = schwarzer Balken, w = weißer
Balken
 
	
		| Wert | Code B | Code C | Strichmuster |  
	| 0 | Leerz. | 00 | bb w bb ww bb ww |  
	| 1 | ! | 01 | bb ww bb w bb ww |  
	| 2 | " | 02 | bb ww bb ww bb w |  
	| 3 | # | 03 | b ww b ww bb www |  
	| 4 | $ | 04 | b ww b www bb ww |  
	| 5 | % | 05 | b www b ww bb ww |  
	| 6 | & | 06 | b ww bb ww b www |  
	| 7 | ' | 07 | b ww bb www b ww |  
	| 8 | ( | 08 | b www bb ww b ww |  
	| 9 | ) | 09 | bb ww b ww b www |  
	| 10 | * | 10 | bb ww b www b ww |  
	| 11 | + | 11 | bb www b ww b ww |  
	| 12 | , | 12 | b w bb ww bbb ww |  
	| 13 | - | 13 | b ww bb w bbb ww |  
	| 14 | . | 14 | b ww bb ww bbb w |  
	| 15 | / | 15 | b w bbb ww bb ww |  
	| 16 | 0 | 16 | b ww bbb w bb ww |  
	| 17 | 1 | 17 | b ww bbb ww bb w |  
	| 18 | 2 | 18 | bb ww bbb ww b w |  
	| 19 | 3 | 19 | bb ww b w bbb ww |  
	| 20 | 4 | 20 | bb ww b ww bbb w |  
	| 21 | 5 | 21 | bb w bbb ww b ww |  
	| 22 | 6 | 22 | bb ww bbb w b ww |  
	| 23 | 7 | 23 | bbb w bb w bbb w |  
	| 24 | 8 | 24 | bbb w b ww bb ww |  
	| 25 | 9 | 25 | bbb ww b w bb ww |  
	| 26 | : | 26 | bbb ww b ww bb w |  
	| 27 | ; | 27 | bbb w bb ww b ww |  
	| 28 | < | 28 | bbb ww bb w b ww |  
	| 29 | = | 29 | bbb ww bb ww b w |  
	| 30 | > | 30 | bb w bb w bb www |  
	| 31 | ? | 31 | bb w bb www bb w |  
	| 32 | @ | 32 | bb www bb w bb w |  
	| 33 | A | 33 | b w b www bb www |  
	| 34 | B | 34 | b www b w bb www |  
	| 35 | C | 35 | b www b www bb w |  
	| 36 | D | 36 | b w bb www b www |  
	| 37 | E | 37 | b www bb w b www |  
	| 38 | F | 38 | b www bb www b w |  
	| 39 | G | 39 | bb w b www b www |  
	| 40 | H | 40 | bb www b w b www |  
	| 41 | I | 41 | bb www b www b w |  
	| 42 | J | 42 | b w bb w bbb www |  
	| 43 | K | 43 | b w bb www bbb w |  
	| 44 | L | 44 | b www bb w bbb w |  
	| 45 | M | 45 | b w bbb w bb www |  
	| 46 | N | 46 | b w bbb www bb w |  
	| 47 | O | 47 | b www bbb w bb w |  
	| 48 | P | 48 | bbb w bbb w bb w |  
	| 49 | Q | 49 | bb w b www bbb w |  
	| 50 | R | 50 | bb www b w bbb w |  
	| 51 | S | 51 | bb w bbb w b www |  
	| 52 | T | 52 | bb w bbb www b w |  
	| 53 | U | 53 | bb w bbb w bbb w |  
	| 54 | V | 54 | bbb w b w bb www |  
	| 55 | W | 55 | bbb w b www bb w |  
	| 56 | X | 56 | bbb www b w bb w |  
	| 57 | Y | 57 | bbb w bb w b www |  
	| 58 | Z | 58 | bbb w bb www b w |  
	| 59 | [ | 59 | bbb www bb w b w |  
	| 60 | \ | 60 | bbb w bbbb w b w |  
	| 61 | ] | 61 | bb ww b wwww b w |  
	| 62 | ^ | 62 | bbbb www b w b w |  
	| 63 | _ | 63 | b w b ww bb wwww |  
	| 64 | ` | 64 | b w b wwww bb ww |  
	| 65 | a | 65 | b ww b w bb wwww |  
	| 66 | b | 66 | b ww b wwww bb w |  
	| 67 | c | 67 | b wwww b w bb ww |  
	| 68 | d | 68 | b wwww b ww bb w |  
	| 69 | e | 69 | b w bb ww b wwww |  
	| 70 | f | 70 | b w bb wwww b ww |  
	| 71 | g | 71 | b ww bb w b wwww |  
	| 72 | h | 72 | b ww bb wwww b w |  
	| 73 | i | 73 | b wwww bb w b ww |  
	| 74 | j | 74 | b wwww bb ww b w |  
	| 75 | k | 75 | bb wwww b ww b w |  
	| 76 | l | 76 | bb ww b w b wwww |  
	| 77 | m | 77 | bbbb w bbb w b w |  
	| 78 | n | 78 | bb wwww b w b ww |  
	| 79 | o | 79 | b www bbbb w b w |  
	| 80 | p | 80 | b w b ww bbbb ww |  
	| 81 | q | 81 | b ww b w bbbb ww |  
	| 82 | r | 82 | b ww b ww bbbb w |  
	| 83 | s | 83 | b w bbbb ww b ww |  
	| 84 | t | 84 | b ww bbbb w b ww |  
	| 85 | u | 85 | b ww bbbb ww b w |  
	| 86 | v | 86 | bbbb w b ww b ww |  
	| 87 | w | 87 | bbbb ww b w b ww |  
	| 88 | x | 88 | bbbb ww b ww b w |  
	| 89 | y | 89 | bb w bb w bbbb w |  
	| 90 | z | 90 | bb w bbbb w bb w |  
	| 91 | { | 91 | bbbb w bb w bb w |  
	| 92 | | | 92 | b w b w bbbb www |  
	| 93 | } | 93 | b w b www bbbb w |  
	| 94 | ~ | 94 | b www b w bbbb w |  
	| 95 | del | 95 | b w bbbb w b www |  
	| 96 | func3 | 96 | b w bbbb www b w |  
	| 97 | func2 | 97 | bbbb w b w b www |  
	| 98 | Shift | 98 | bbbb w b www b w |  
	| 99 | Code C | 99 | b w bbb w bbbb w |  
	| 100 | func4 | Code B | b w bbbb w bbb w |  
	| 101 | Code A | Code A | bbb w b w bbbb w |  
	| 102 | func1 | func1 | bbbb w b w bbb w |  
	| 103 | Start A | Start A | bb w b wwww b ww |  
	| 104 | Start B | Start B | bb w b ww b wwww |  
	| 105 | Start C | Start C | bb w b ww bbb ww |  
	| 106 | Stop | Stop | bb www bbb w b w bb |    |