Code 128
Code 128 provides excellent density for all-numeric data and good density for alphanumeric data. The symbol can be as long as necessary to store the encoded data. It is often selected over Code 39 in new applications because of its density and because it offers a much larger selection of characters. Code 128 is designed to encode all 128 ASCII characters.
A Code 128 can actually be divided into three subsets A, B and C. There are three separate start codes to indicate which subset is being used. In addition, each subset includes control characters to switch to another subset in the middle of a barcode.
- A – Digits, uppercase characters, standard ASCII symbols and control codes.
- B – Digits, upper and lower case characters, standard ASCII symbols and control codes.
- C – Numeric only. Compresses two numeric digits into each character, providing excellent density. ImageGear will add a leading "0" if there are an odd number of digits in the code.
When the BarcodeType property is set to write a Code 128 barcode, the barcode engine will automatically switch between the three character sets (A, B and C) to code the data in the shortest form.
An Example:
EAN-128
The UCC/EAN 128 barcode is a special form of Code 128. EAN-128 is based on Code 128 but it has a double start character. It is also called UCC128.
The barcode engine will generate an error, if you have characters in your barcode value that are not allowed.
Each character is 11 times the width of the most narrow bar. Each character consists of 3 bars and 3 spaces. The bars always use an even number of elements and the spaces use an odd number. This provides the basis for a character-by-character consistency check during scanning. In addition, each Code 128 barcode includes a Modulo 103 checksum.
Code 128 requires a quiet zone, which should be at least the width of 10 narrow bars. This means that if you set the MinimumBarWidth property to 3 pixels (narrow bar size), you should set the HorizontalWhiteSpace property to 30 pixels.
An Example: