Chapter 8. Barcode Technologies

8.1. Introduction

Barcode has been widely adopted across all major industries. A conventional barcode is a machine readable symbol consisting of a series of parallel, adjacent bars and spaces. The basic barcode structure features leading and trailing quiet zones, a start character, one or more data characters, one or more check characters (optional) and a stop character.

Barcode has a long development history that spanned half a century. During the evolution process, many formats have been developed and adopted by industries. Around a dozen of them are actively used today.

The term symbology is the scientific name for the barcode format. Different symbologies have different characteristics, such as the encoding efficiency and character set. The character set defines what kind of data the symbology encodes. Typically there are four types of character sets: (1) numeric. Only digits can be encoded. (2) alpha-numeric. The symbology is capable of encoding numbers, letters plus several punctuations. (3) full ASCII. All characters in the ASCII set, with value between 0 and 127, can be encoded. (4) Binary. Binary character set includes all 256 characters in a 8-bit single byte character set. Most of two dimensional symbologies are capable of encoding arbitrary binary data.

Some symbologies may impose length requirements. For example, UPC-A encodes the numeric data of exact 12 digits.

Two dimensional symbologies are usually capable of encoding thousands of characters.

Monterey Barcode Creator supports the following symbologies:

Table 8.1. Symbologies supported by Monterey Barcode Creator

SymbologyAlso Known As
Code 39Code 3 of 9, AIAG, USS Code 39
Code39 Full ASCIICode 39 Extended
HIBC Code 39HIBC, LOGMARS
CodabarRationalized Codabar
Code 93 
Code 128USS-128, C-128
GS1-128UCC 128, EAN 128
Interleaved 2 of 5ITF, ITF-14, I 2 of 5
UPC-A 
UPC-E 
EAN-13 
EAN-8 
Bookland 
Telepen, Telepen Numeric 
Postnet, Planet 
Royal MailUK Postal Code, RM4SCC
MSI/PlesseyPlessey Code
Code 25Industry 25, Code 2 of 5
Code 11 

You can purchase symbology standards directly from AIM Inc. The web address of AIM is http://www.aimglobal.org.

8.2. Code 39

Code 39 (also known as USS Code 39, Code 3 of 9) is the first alpha-numeric symbology developed to be used in non-retail environment. It is widely used to code alphanumeric information, such as the model number, etc. It is designed to encode 26 upper case letters, 10 digits and 7 special characters:

A, B, C, D, E, F, G, 
H, I, J, K, L, M, N, O, P, Q, 
R, S, T, U, V, W, X, Y, Z
0, 1, 2, 3, 4, 5, 6, 7, 8, 9
-, ., *, $, /, +, %, SPACE.

Each code 39 symbol begins with a start character and ends with a stop character. Traditionally the start/stop characters are represented by asterisk character (*). Due to this reason, some applications include asterisks in the human readable text. The asterisks are not part of the encoded message and should not appear within the message.

Code 39 allows an optional checksum digit based on modulo 43 algorithm. The health industry has adopted the use of the check character for health applications and these types of barcodes are often referred as HIBC.

Property Code39OptionalCheckDigit specifies whether an additional check digit should be added to the barcode. Another property, Code39StartStopChars, when it is set to TRUE, adds the traditional start/stop characters (*) to the beginning and the end of the human readable text.

8.3. Code 39 Full ASCII

The Code 39 Full ASCII (sometimes also referred as Code 39 extended) is an extension to normal code 39. It is capable of encoding all 128 ASCII characters. It uses shift characters to combine two normal code 39 characters to encode a character not in the normal code 39 character set. The barcode generated is compatible with normal code 39, so a scanner must be configured to Full ASCII mode to read the barcode correctly.

Code 39 Full ASCII supports entering control characters using special character input method. You can use a back slash \ plus 3-digit decimal ASCII code to enter a control character. For example, the following input encodes digits 123, followed by a NUL character and letters abc:

Data Input: 123\000abc

8.4. Code 39 HIBC

Code39 HIBC is exactly the same as normal Code39, except that Code39OptionalCheckDigit property is set to TRUE. The standard also says that the starting character in the message must be a plus (+) symbol. Monterey Barcode Creator automatically adds this plus sign (+) if the encoded message does not meet this requirement.

The HIBC standard requires that the checksum digit to appear in the human readable. To satisfy this requirement, your program should explicitly set property ShowcheckDigit to TRUE to create a compliant HIBC symbol.

Setting Code39OptionalCheckDigit to FALSE does not affect the resulted barcode.

8.5. Codabar

Codabar is a variable length symbology which encodes a character set of 16 letters ( 0-9, -, $, :, /, +). It is dubbed as NW-7 in Japan. You may choose one of these four start/stop characters in your symbol: A, B, C and D. If you do not specify the start/stop characters, Monterey Barcode Creator uses A and B as the start/stop characters, respectively. No check digit is required.

8.6. Code 93

Code 93 is a variable length symbology that is capable of encoding all 128 ASCII characters. Code 93 offers higher density than Code 39. It has the same native character set as Code 39 (43 characters), but it uses additional 4 shift characters to encode other characters. Code 93 features 2 checksum characters. Start/Stop characters are also required.

Code 93 supports special character input method. See Code 39 Full ASCII section for details on how to escape control characters.

8.7. MSI/Plessey, Code 25 and Code11

These are rather obsolete symbologies which only encode numeric data. There is no advantage to use them except for application backward compatibility. More information can be found at Morovia barcode library at http://www.morovia.com/education/.

8.8. UPC-A,UPC-E and UPC Supplements

The UPC-A barcode is the most common and well-known symbology in North America. You can find it on the cartons of virtually every consumer goods in your local supermarket, as well as books, magazines, and newspapers. A short form is called UPC-E. Each symbol may have 2-digit or 5-digit supplement to encode additional information.

UPC-A encodes 11 digits of numeric data along with a trailing check digit, for a total of 12 digits of barcode data.

A UPC-A number consists of four elements: (1) the Number System; (2) the manufacturer code; (3) the product code; (4) the check digit. Normally the number system digit is printed to the left of the barcode, and the check digit to the right. The manufacturer and product codes are printed just below the barcode, separated by the guard bar.

The UPC-E barcode is the short form representation of a UPC number. It reduces the data length from 12 digits to 6 digits by compressing the extra zeros. It is suited for identifying products with small packages.

A UPC-E barcode has 6 digits with an implied number system 0. The first 5 digits are calculated based on a conversion algorithm described below. The last digit is the check digit of the original UPC-A symbol.

Both UPC-A and UPC-E symbols allow for a supplemental two- or five-digit add-on barcode. This add-on barcode usually encodes a price or a sequence number. To include a supplemental message, append it to the main message with a vertical bar (|) to separate it from the main message. The supplemental message must consist of exact two or five digits.

Table 8.2. Examples of UPC-A, UPC-E and Supplement

MessageSymbol Created
90123678812UPC-A
90123678812|02UPC-A with 2-digit add on
0123456UPC-E
0123456|95000UPC-E with 5-digit add on

8.9. EAN-13, EAN-8 and EAN Supplements

EAN is designed by the International Article Numbering Association (EAN) in Europe. It is an extension to UPC-A to include the country information. The only difference between UPC-A and EAN-13 is that the number system in UPC-A is a single digit varying from 0 through 9, whereas an EAN-13 number system consists of two digits ranging form 00 to 99.

EAN-13 encodes 12 digits of numeric data along with a trailing check digit, for a total of 13 digits data.

An EAN-13 number consists of four elements: (1) the Number System; (2) the manufacturer code; (3) the product code; (4) the check digit. Normally the number system digit is printed to the left of the barcode, and the check digit to the right. The manufacturer and product codes are printed just below the barcode, separated by the guard bar.

EAN-8 is the short version of EAN-13, the same as UPC-E vs. UPC-A. While they look very similar, some differences exist. UPC-E does not explicitly encode the first digit (NS), while EAN-8 encodes all 8 digits. From barcode encoding/decoding perspective, an EAN-8 is not compatible with UPC-E. Moreover, although a UPC-E number can be converted back to UPC-A, this is not the case for EAN-8. There is no defined method for conversions between EAN-13 to EAN-8. An EAN-8 number is assigned in the same way as EAN-13.

An EAN-8 number contains 7 digits of message plus 1 check digit. The first two or three digits identify the numbering authority; the remaining 4 or 5 digits identify the product.

Table 8.3. Examples of EAN-13, EAN-8 and Supplement:

MessageSymbol Created
97802161594EAN-13
978020161594|02EAN-13 with 2-digit add on
71245126EAN-8
71245126|95000EAN-8 with 5-digit add on

8.10. ISBN/Bookland

The International Standard Book Number (ISBN) has been invented for more than 30 years. It has experienced exponential growth and remarkable success. Today, every book, magazine, cassette and CD bear an ISBN number. Every item to be sold in bookstore is required to furnish an ISBN. The ISBN is used extensively by publishers, retailers as wells as libraries to manage inventory. The ISBN is represented through an EAN barcode, a.k.a. Bookland barcode plus an optional 5-digit (2-digit for magazines) add-on.

An ISBN is a 10 digit number preceded by the letters ISBN. The text is usually printed with OCR-A font. The 10-digit number is divided into four parts of variable length, which are separated by hyphens or spaces. The four parts are Group Identifier, Publisher Identifier, Title Identifier and Check Digit respectively. Note that the length of each part is not fixed, though the total length must be 10.

A Bookland symbol may have an optional 2-digit or 5-digit add-on symbol. To add the supplement, add them at the end of the main message and separate the two parts with a vertical bar(|), in the same way as the UPC and EAN supplements. For example, to encode an ISBN number 0-201-61595-9 with pricing information 53995, set the Message property to 0-201-61595-9|53995.

Note on 13-digit ISBN

Beginning on January 1, 2007, all 10-digit ISBNs are required to be re-expressed as a 13-digit number (EAN-13). To convert a 10-digit ISBN to 13-digit EAN number, drop the last checksum digit of the 10-digit ISBN number and add prefix 978 at the beginning. Calculate the EAN-13 check digit based on the result and append this checksum digit to the end of the result. To create the barcode, use EAN13 symbology instead and assign the 13-digit ISBN number to the message property.

8.11. Code 128

Code 128 is a high-density alpha-numeric symbology. Since introduced in early 1980s, it has gained wide popularity in many industries. UCC/EAN derives its retail carton tracking standard UCC/EAN 128 based on Code 128 symbology.

Code 128 is a variable length, continuous symbology with multiple element widths. Every Code 128 symbol has a check character. Each character is encoded with three bars and spaces, in total 11 modules.

In the most recent standard ISO/IEC 15417, Code128 is extended to encode all 256 characters of a single-byte character set[1]. The default character set is ISO 8859-1 (Latin Alphabet No. 1).

Code 128 standard also defines four function codes for special purposes. FNC2 is used to tell barcode reader to store the data and transmit with next symbol; FNC4 is used as a latch code word to switch into extended ASCII mode. FNC3 is reserved for future use. FNC1 is used in UCC/EAN128 to act as UCC/EAN-128 identifier and field delimiter.

8.11.1. How Monterey Barcode Creator Implements Code128

Monterey Barcode Creator allows encoding all 256 characters as well as 4 special symbol characters: FNC1, FNC2, FNC3and FNC4.

Internally Code128 defines 3 character sets (A, B and C) to allow efficient encoding. Each character set contains 103 characters (including special symbol characters). A code128 symbol starts with one character set and latches to a different set with a latch codeword. Since these three character sets overlap, it is possible to get different barcodes with the same data encoded.

To allow space efficiency, during the encoding process, the Monterey Barcode Creator selects the proper character sets and inserts necessary shift characters to make the symbol generated as short as possible.

Code128 requires a checksum character to ensure the data integrity. The checksum character has no meaning to the end user. Monterey Barcode Creator does not transmit the checksum digit back to the human readable text.

Note

The Monterey Barcode Creator always tries to create the shortest barcode. For example, if Monterey Barcode Creator sees that some portion of the data is best fit encoded with Code128 C,it automatically select character set C. The end user does not have the control on how the data is encoded.

8.11.2. Tilde Codes

Under some circumstances, it is necessary to represent some characters with an ASCII-only format. This kind of representation format is called escape sequence. For example, the four special Code128 symbol characters, FNC1~FNC4, do not have corresponding ASCII values. Consequently the only way to enter them into the Message property is through their escaped forms. Some applications and programming environments may only accept printable ASCII characters, and control characters must be escaped.

Tilde code sequence is the only escape method supported in Monterey Barcode Creator version 3.2 and above. The special character input method (escaping a character using a back-slash character followed by 3-digit character value) present in previous versions is now deprecated.

The tilde code consequences used in Code128 are listed as below:

~dnnn

When nnn corresponds to a numeric value between 0 and 255, the tilde code sequence represents a character with value equal to nnn. For example, ~d032 represents a space character.

~~

Represents a tilde (~) character.

~1

Represents a FNC1 character. The tilde escape sequence can appear anywhere in the input.

~2

Represents a FNC2 character.

~3

Represents a FNC3 character.

~4

Represents a FNC4 character. FNC4 is used to encode extended ASCII characters. You do not need to enter the FNC4 in most circumstances. Just pass the extended characters you'd like to encode.

~X

Represents a character value from 0 to 26. Replace the X like in the following example ~@ means character ascii 0, ~A means character 1, ~B means character 2, ~C means character 3 and so on.

Note

Due to the fact that each symbology encodes different character set, the tilde code sequence varies from symbology to symbology. Refer to the tilde codes section of each symbology to understand how to escape the character.

8.12. UCC/EAN-128

8.12.1. Introduction

UCC/EAN-128[2] encodes structured data proposed by various industry standard bodies and authorized by GS1 organization. Each data type is identified with a numeric value, called Application Identifier (AI). Multiple AIs and values can be concatenated together into one barcode, such as:

(01)19421123450011(15)991231(10)101234

The data above contains multiple AIs and values:

  • 01 indicates that the value followed 19421123450011 is a SCC-14 number. [3]

  • 15 is the AI for Sell by Date. The value followed 991231 indicates that the Sell By Date is December 31, 1999.

  • 10 is the AI for Batch Number. According to the specification, it is a variable length AI. Here the value is 101234.

The AI value determines the meaning and the length of the value part. Many of them encode a predefined length of data. For example, the SCC14 requires exact 14 digits and the Sell By Date requires exact 6 digits in YYMMDD format.

When the data length can be derived from AI, it is not necessary to add field separator (FNC1) in the barcode to separate two adjacent fields. However, if the first field has a variable data length, such a field separator is required. And in many applications it is often desirable to have a field separator between two fixed-length fields. The Code128 symbol character FNC1 serves this purpose.

8.12.2. How Monterey Barcode Creator Implements UCC/EAN-128

To understand each data field, the Monterey Barcode Creator requires you to enter the data in a special format. The AI must be enclosed with parentheses. From the AI, Monterey Barcode Creator knows whether a field has a fixed length or a variable length. For all variable-length fields, Monterey Barcode Creator inserts field separator unless it is located at the end of the symbol.

The Monterey Barcode Creator also performs data validation on the AI and the data, if the AI is known to the program.

Table 8.4. List of Known AIs

AINameConstraintShort Name
00SSCC (Serial Shipping Container Code)n2+n18SSCC
01Global Trade Item Numbern2+n14GTIN
02GTIN of Trade Items Contained in a logistic unitn2+n14CONTENT
10Batch or lot numbern2+an..20BATCH/LOT
11Production date (YYMMDD)n2+n6PROD DATE
12Due date (YYMMDD)n2+n6DUE DATE
13Packaging date (YYMMDD)n2+n6PACK DATE
15Best before date (YYMMDD)n2+n6BEST BEFORE or SELL BY
17Expiration date (YYMMDD)n2+n6USE BY OR EXPIRY
20Product variantn2+n2VARIANT
21Serial numbern2+an..20SERIAL
22Secondary data for specific health industry productsn2+an..29QTY/DATE/BATCH
240Additional product identification assigned by the manufacturern3+an..30ADDITIONAL ID
241Customer part numbern3+an..30CUST. PART NO.
242Made-to-Order Variation Numbern2+n..6Variation Number
250Secondary serial numbern3+an..30SECONDARY SERIAL
251Reference to source entityn3+an..30REF. TO SOURCE
253Global Document Type Identifiern3+n13+n..17DOC. ID
254GLN Extension componentn3+an..20GLN EXTENSION
30Variable countn2+n..8VAR. COUNT
310n-369n(Trade and logistic measurements)n4+n6--
337nKilograms per square metren4+n6KG PER m2
37Count of trade items contained in a logistic unitn2+n..8COUNT
390(n)Amount payable - single monetary arean4+n..15AMOUNT
391(n)Amount payable - with ISO currency coden4+n3+n..15AMOUNT
392(n)Amount payable for a Variable Measure Trade Item - single monetary unitn4+n..15PRICE
393(n)Amount payable for a Variable Measure Trade Item - with ISO currency coden4+n3+n..15PRICE
400Customer's purchase order numbern3+an..30ORDER NUMBER
401Consignment numbern3+an..30CONSIGNMENT
402Shipment Identification Numbern3+n17SHIPMENT NO.
403Routing coden3+an..30ROUTE
410Ship to - deliver to Global Location Numbern3+n13SHIP TO LOC
411Bill to - invoice to Global Location Numbern3+n13BILL TO
412Purchased from Global Location Numbern3+n13PURCHASE FROM
413Ship for - deliver for - forward to Global Location Numbern3+n13SHIP FOR LOC
414Identification of a physical location Global Location Numbern3+n13LOC No
415Global Location Number of the Invoicing Partyn3+n13PAY
420Ship to - deliver to postal code within a single postal authorityn3+an..20SHIP TO POST
421Ship to - deliver to postal code with Three-Digit ISO country coden3+n3+an..9SHIP TO POST
422Country of origin of a trade itemn3+n3ORIGIN
423Country of initial processingn3+n3+n..12COUNTRY - INITIAL PROCESS.
424Country of processingn3+n3COUNTRY - PROCESS.
425Country of disassemblyn3+n3COUNTRY - DISASSEMBLY
426Country covering full process chainn3+n3COUNTRY - FULL PROCESS
7001NATO stock numbern4+n13NSN
7002UN/ECE meat carcasses and cuts classificationn4+an..30MEAT CUT
703(s)Approval number of processor with ISO country coden4+n3+an..27PROCESSOR # s4
7003Expiration Date and Timen4+n10EXPIRY DATE/TIME
8001Roll products - width, length, core diameter, direction, and splicesn4+n14DIMENSIONS
8002Electronic serial identifier for cellular mobile telephonesn4+an..20CMT No
8003Global Returnable Asset Identifiern4+n14+an..16GRAI
8004Global Individual Asset Identifiern4+an..30GIAI
8005Price per unit of measuren4+n6PRICE PER UNIT
8006Identification of the component of a trade itemn4+n14+n2+n2GCTIN
8007International Bank Account Numbern4+an..30IBAN
8008Date and time of productionn4+n8+n..4PROD TIME
8018Global Service Relation Numbern4+n18GSRN
8020Payment Slip Reference Numbern4+an..25REF No
8100GS1-128 Coupon Extended Code - NSC + Offer Coden4+n1+n5-
8101GS1-128 Coupon Extended Code - NSC + Offer Code + end of offer coden4+n1+n5+n4-
8102GS1-128 Coupon Extended Code - NSCn4+n1+n1-
90Information mutually agreed between trading partners (including FACT DIs)n2+an..30INTERNAL
91-99Company internal informationn2+an..30INTERNAL

If the AI is not listed in the table above [4], Barcode Creator can not know whether its data length is fixed or variable. Thus, the Monterey Barcode Creator treats the data as if its data length is variable and insert the field separator FNC1 when this field does not end the symbol.

For example, suppose that you set Message to (01) 19421123450011(8019)123456(15)051210. The Monterey Barcode Creator understands that 01 AI requires fixed-length 14 digits data and AI 15 requires fixed-length 14 digits data. However, Monterey Barcode Creator does not understand the AI 8019 and treats this field as if it has a variable length. The Monterey Barcode Creator inserts a field separator at the end of this field (before AI 15).

Assuming that AI 8019 requires a fixed data length, you can tell Monterey Barcode Creator that the field has a fixed data length by appending a tilde character ~ at the end of the field. For example, you can assign the value below:

(01)94211234500122(8019)123456~(15)051210

When the Monterey Barcode Creator sees the ~, it treats the current field as fixed-length.

On the other side, if a known AI has a fixed data length but you'd like to have a field separator at the end of the field, you can do so by adding an exclamation character at the end of field, such as:

(01)94211234500122!(8019)123456(15)051210

It forces a field separator to appear after the SCC14 number even AI 01 has a fixed data length and the field separator is not required. Sometimes this field separator is desirable because it is easier for the application to parse the input.

See the table below for the comparison among results produced by different inputs. The[ GS] is the scanner output for FNC1 character.

BarcodeData input/Scanner output

(01)94211234500122(8019)123456~(15)051210

0194211234500122801912345615051210

(01)94211234500122!(8019)123456(15)051210

0194211234500122[ GS]8019123456[ GS]15051210

(01)94211234500122(8019)123456(15)051210

01942112345001228019123456[ GS]15051210

8.12.3. Auto Check Digit

Before version 3.6, Monterey Barcode Creator calculates mod10 check digits on SCC-14 and SSCC-18 numbers, but only When the property UccEanOptionalCheckDigit is TRUE. This behavior has been changed since version 3.6. Now the program calculates mod 10 check digit automatically, regardless the value of UccEanOptionalCheckDigit. This renders this property useless.

Barcode Creator performs check digit calculation on those AIs: 00, 01, 02, 410, 411, 412, 413, 414, 415, and 8018.

8.12.4. Input Format

To create the barcode correctly, you must enclose the AI with parentheses ( ). The Monterey Barcode Creator only accepts numeric AI values. It reports an error when encountering a non-numeric character in the AI part. If AI does not appear in the known list (see the table above), and you do not want the data treated as variable length, you should tell so by appending a tilde character at the end of the field.

Sometimes, it is desirable to have the data separated by spaces in the human readable text. For example, you may like to see the human readable text (8101) 0 54321 1200(21)123456 instead of (8101)0543211200(21)123456. You can create the desirable human readable text by entering the message exactly like the one you'd like the human readable to be. Monterey Barcode Creator ignores the spaces during the encoding, but preserves them in the human readable text, as the one below illustrates:

8.12.5. Validation

Monterey Barcode Creator performs the following validations during the encoding process:

  • Check whether the AI is numeric.

  • Check whether a data part follows the AI.

  • If the AI is known to Monterey Barcode Creator and requires a fixed length of data part, check if the data part has the correct length.

  • Check whether the AI is enclosed with parentheses.

  • If the AI is known to Monterey Barcode Creator and requires only numeric or alpha-numeric data, check if the data part meets the requirement.

  • If the AI is known to Monterey Barcode Creator and requires variable length of the data, check if the length of the data exceeds the maximum size allowed.

8.12.6. Non-standard Application

If your application does not pass the validation, you can not use UCC/EAN-128 to encode the data. Nevertheless, since UCC/EAN-128 encoding is based on Code128 symbology, you can encode the data directly with Code128. Here are several hints you may consider when converting the EAN-128 data into a Code128 input:

  • An EAN-128 barcode starts with a FNC1 character. FNC1 can be entered with tilde code sequence ~1.

  • If you'd like to have the field separator encoded between two adjacent fields, using FNC1 character to separate two fields.

  • Code128 is capable of encoding spaces. Do not enter spaces in the input if you do not want them appear in the barcode.

  • You may use tilde code sequences to enter extended ASCII characters. See Section 8.11, “Code 128” for details.

For example, Code128 with message ~18101054321120021123456 produces the exact barcode as the one using UCC/EAN-128 with message (8101)0 54321 1200(21)123456.

Some non-standard applications do not encode the FNC1 in the starting message. When this is the case, remove ~1 at the beginning of the input.

8.13. Interleaved 2 of 5 (ITF25)

Interleaved 2 of 5 is a high-density numeric symbology. Some applications require a modulo 10 checksum digit at the end of the message. Interleaved 2 of 5 uses an interwinded method to create barcodes and consequently it requires the data length to be even. In order to meet this requirement, Barcode Creator appends a MOD10 check digit when it finds that the input is in odd length. Otherwise, it encodes the data as is.

Note that this behavior has changed since version 3.6. Previously, check digit is added only when property I2of5OptionalCheckDigit is TRUE, otherwise a '0' is appended instead. The new implement allows you to enter 13 digits SCC-14 number to get a complete barcode with the check digit.

If the check digit is added, it always appears in the human readable text.

The input for Interleaved 2 of 5 allow spaces. The spaces are preserved in the human readable text but not encoded into the barcode. Fro example, the barcode below is created on input 0 07 70007 0723. Note that the last digit '9' is the check digit, which is calculated by the program.

Interleaved 2 of 5 is widely used to encode Shipping Container Code (SCC-14), which contains exact 14 digits. When it is used for encoding SCC-14 numbers, it is also called ITF-14.

You can add bear bars to the barcode by setting BearerBars to TRUE.

8.14. POSTNET

POSTNET (Postal Numeric Encoding Technique) encodes a US numeric address code (also called Zip code) which may contain 5, 9 or 11 digits - frequently referred as Zip, Zip+4 and Zip+6.

POSTNET is a height-modulated symbology which encodes the data in the height of the barcode instead of the width. Monterey Barcode Creator produces POSTNET barcode based on USPS standard. The height of each bar and the pitch between two adjacent bars are fixed and can not be modified. Changing NarrowBarWidth and BarHeight yields no effect. Although Monterey Barcode Creator produces human readable if you desire, keep in mind that USPS standard does not allow human readable text under the barcode.

The Monterey Barcode Creator accepts non-numeric input but filters them out at the time of the encoding. It adjusts the length by adding trailing zeros to meet the length requirement. You may take the advantage by assigning the full address line to the Message instead of passing only digits. For example, data input Monterey Park, CA 91755-1688 yields an identical barcode as message 917551688.



[1] Published in year 2000, this standard is relative new to the industry. Not all scanners in the market support this feature.

[2] As UCC/EAN orgnization changed its name to GS1, now the symbology is also called as GS1-128.

[3] Also referred as GTIN (Global Trade Item Number)

.

[4] This table was updated in version 3.6 to reflect the changes made since the first version came out.