23.9. Short description of supported symbologies

In the following section we will describe the requirements to encode in each of the supported symbologies. Some symbologies have strict standard for the data to be encoded. Trying to encode illegal (or not supported data) will result in a "Data validation" error as shown in Figure 23.5.

Warning

Please note that the information given here is in no way a replacement for the official AIM and ISO standards these encoding are based on. It is assumed that the reader have access to the official standards describing each of these encodings before applying a particular symbology.

23.9.1. UPC A

UPC A = Universal Product Code Version A.

UPC A encodes 12 numeric digits. The first digit identifies the number system used. The next group of 5 digits identifies the manufacturer. This number is assigned by the Uniform Code Council (UCC). The next 5 digits identify the particular product and are assigned by the manufacturer. The final digit is a check digit.

Usage

Used for consumer goods. Is being slowly replaced by EAN13. UPCA is a special case of EAN 13 where the first digit is always 0.

Input data/character set

Eleven digit. First digit is always 0.

Checksum

Automatic, mandatory.

Example

Encoded string = "03456781233"

Figure 23.8. UPC A Example

UPC A Example


23.9.2. UPC E

UPC E = Universal Product Code Version E.

Usage

Same general use as UPC A. Can be considered a subset and a more compact version of UPC A. Used where UPC A bar codes are to wide.

The 6 resulting digits is take from the UPC A according to the following 4 rules:

  1. If a manufacturer's number ends in 000 or 100 or 200, he has available to him 1,000 item numbers between 00000 and 00999. The six characters are obtained from the first two characters of the manufacturer's number followed by the last three characters of the item number, followed by the third character of the manufacturer's number.

  2. If a manufacturer's number ends in 300, 400, 500, 600, 700, 800 or 900, he has available to him 100 item numbers between 00000 and 00099. The six characters are obtained from the first three characters of the manufacturer's number followed by the last two characters of the item number, followed by "3".

  3. If a manufacturer's number ends in 10, 20, 30, 40, 50, 60, 70, 80 or 90, he has available to him 10 item numbers between 00000 and 00009. The six characters are obtained from the first four characters of the manufacturer's number followed by the last character of the item number, followed by "4".

  4. If a manufacturer's number does not end in zero, then five item numbers between 00005 and 00009 are available. The six characters are obtained from all five of the manufacturer's identification number followed by the last character of the item number.

Input data/character set

Eleven digits. First digit is always 0. Data input must follow UPC rule for construction of UPC E data.

Checksum

Automatic, mandatory

Example

Encoded string = "05510000120"

As an example of the smaller size of UPC E the same data string is also encoded with UPC A below.

Figure 23.9. UPC E Encoding of "05510000120"

UPC E Encoding of "05510000120"


Figure 23.10. UPC A Encoding of "05510000120"

UPC A Encoding of "05510000120"


23.9.3. EAN 8

General purpose short barcodes

Usage

A shorter version of EAN13 using only 7 digits + checksum digit.

Input data/character set

Seven digits.

Checksum

Automatic, mandatory

Example

Encode string = "3776221". Note the automatically added check digit.

Figure 23.11. EAN 8 Example

EAN 8 Example


23.9.4. EAN 13

The names comes from that this symbology encodes 13 characters. It is widely used in the manufacturing industry.

The first two or three digits are a country code which identify the country in which the manufacturer is registered. The country code is followed by 9 or 10 data digits (depending on the length of the country code) and a finally a single digit checksum.

Usage

Generic code for consumer goods. Is replacing UPC-A as worldwide standard.

Input data/character set

Twelve digits.

Checksum

Automatic, mandatory

Example

Encoded string = "377622153812"

Figure 23.12. EAN 13 Example

EAN 13 Example


23.9.5. EAN 128

Note

The GS1 (www.gs1.com) organization has renamed several barcode standards built on Code 128 such as EAN-128 to GS1-128.

Usage

EAN 128 is a CODE 128 where the data structure is strictly regulated. Please refer to the official EAN-128 specifications for details.

Input data/character set

An alphanumeric data string following EAN 128 rules. This means for one thing that the string must start with a FUNC1 character which is encoded using ASCII 128 in JpGraph Barcode available as constant EA_FUNC1. The validation routines checks these rules and will fail any data string not following the EAN 128 rules.

Checksum

Automatic, mandatory.

Example

Encoded string = "3125134772"

Figure 23.13. EAN 128 Example

EAN 128 Example


23.9.6.  Industrial 2 of 5

The names comes from that each character is encoded in 5 bars and 2 of those are 3 modules wide and the rest 1 module wide

Usage

Old low density standard. For newer applications it should not be used. Use interleaved 2 of 5 instead since this is a higher density code.

Input data/character set

Digits.

Checksum

Optional.

Example

Encoded string = "13729"

Figure 23.14. Industrial 2 of 5, without check digit

Industrial 2 of 5, without check digit


Figure 23.15. Industrial 2 of 5, with check digit

Industrial 2 of 5, with check digit


23.9.7. Interleaved 2 of 5

The name comes from the that each data character is composed of 5 elements, either 5 bars or 5 spaces. Two elements are 3 modules wide and three elements have a width of 1 module. Adjacent characters are interleaved, mixing the spaces from one character with the bars of the other.

Note

This symbology is sometimes referred to as "Code 25" but since this could also refer to "Industry 2 of 5" symbology this name is ambiguous without further discriminating information.

Usage

Various. Relative hight density numeric code. Used for example on some driving licenses.

Input data/character set

Even length numeric string when not using checksum. Odd length string when using checksum.

Checksum

Optional.

Example

Encoded string = "137291"

Since using a checksum requires an odd number of digits we add a '0' in the beginning to get a data string with an even number of digits.

Figure 23.16. Industrial 2 of 5, without check digit

Industrial 2 of 5, without check digit


Figure 23.17. Industrial 2 of 5, with check digit

Industrial 2 of 5, with check digit


23.9.8. CODE 11 (USD 8)

Warning

THIS IS AN EXPERIMENTAL ENCODER

Due to the lack of CCD scanners supporting this code in Europe we have not been able to verify this Code against any scanning equipment.

Usage

Numeric only code. Used primarily on telecommunication equipment. Not recommended for general usage. Note: This code is not widely supported by handhold CCD scanners.

Input data/character set

Numeric including the dash "-" character.

Checksum

Optional.

Example

Encoded string = "0137291"

Figure 23.18. Code 11, without check digit

Code 11, without check digit


Figure 23.19. Code 11, with check digit

Code 11, with check digit


23.9.9. CODE 39

This is also known as "Code 3 of 9" or "USD 3" . This names comes from that each character consists of 9 elements. 5 bars and 4 spaces. Three of those elements are 2 modules wide and the rest one module wide. Code 39 is defined in American National Standards Institute (ANSI) standard MH10.8M-1983.

The full 128 ASCII character set can be encoded in Code 39.

Code 39 is a very widely used barcode and basically every scanner/reader on the market is able to decode Code 39 barcodes which makes it for a very good selection as a generic linear barcode.

Usage

General alphanumeric data (Capitals only)

Input data/character set

Alphanumeric (CAPITALS only) including the special characters "$", "/", "+", "%" and "*"

Checksum

Optional.

Example

Encoded string = "GRAPH12"

Figure 23.20. Code 39, without check digit

Code 39, without check digit


Figure 23.21. Code 39, with check digit

Code 39, with check digit


23.9.10. CODE 39 Extended

Code 39 Extended was developed to provide a means of encoding additional characters that are not normally part of the Code 39 character set (lower case characters and symbols).

Usage

Same as Code 39 with the change that it supports lower case characters ("a,b,c,d,...") but do not support the special characters "+/%$+*".

Input data/character set

Alphanumeric data.

Checksum

Optional.

Example

Encoded string = "Code39"

Figure 23.22. Code 39 Extended, without check digit

Code 39 Extended, without check digit


Figure 23.23. Code 39 Extended, with check digit

Code 39 Extended, with check digit


23.9.11. CODE 128

Named so since it can encode the entire 128 ASCII character set (from ASCII 0 to ASCII 128.)

Usage

Generic high density code which supports the full ASCII set.

Input data/character set

Alphanumeric characters.

Checksum

Automatic, mandatory.

Example

Encoded string = "Code128"

Figure 23.24. Code 128

Code 128


23.9.12. CODABAR

Codabar is primarily used in libraries in the USA. It is also sometimes used in health care and transportation systems.

Usage

Old, numeric + some alpha capability, code. Primarily used in the USA.

Input data/character set

Numbers 0-9, Special characters "-$:/.+"

Checksum

None.

Example

Encoded string = "12354"

Figure 23.25. Codabar

Codabar


23.9.13. Bookland (ISBN)

This is a specially formatted EAN13 Code. This is primarily used to encode the International Standard Book Number (ISBN) on magazines and books.

Usage

Encodes ISBN codes in books and magazines.

Input data/character set

A valid ISBN number without last digit (check digit) and "-" signs. An ISBN is a 10-digit number which is made up of

  • Group identifier (1 digit, typically 0 or 1 for English-speaking countries)

  • Publisher identifier

  • Title identifier

  • Check digit

Checksum

Automatic, mandatory.

Example

The input data must be a valid ISBN (International Standard Book Number)

Encoded string = "0-486-63926-6"

Figure 23.26. Bookland (ISBN)

Bookland (ISBN)


Note

The ISBN check digit "6" is automatically removed and replaced by the EAN 13 check digit.

Note

A bookland code will always have the digits "978" as the first three digits (the standard also allows "979" but that is currently not in use)

Note

ISBN numbers are organized in Europe by:

International Standard Book Number Agency, 
Staatsbibliothek Preussischer Kulturbesitz
Posdamer Strasse 33
D-1000 Berlin 30 Germany