Table of Contents
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
Symbology | Also Known As |
---|---|
Code 39 | Code 3 of 9, AIAG, USS Code 39 |
Code39 Full ASCII | Code 39 Extended |
HIBC Code 39 | HIBC, LOGMARS |
Codabar | Rationalized Codabar |
Code 93 | |
Code 128 | USS-128, C-128 |
GS1-128 | UCC 128, EAN 128 |
Interleaved 2 of 5 | ITF, ITF-14, I 2 of 5 |
UPC-A | |
UPC-E | |
EAN-13 | |
EAN-8 | |
Bookland | |
Telepen, Telepen Numeric | |
Postnet, Planet | |
Royal Mail | UK Postal Code, RM4SCC |
MSI/Plessey | Plessey Code |
Code 25 | Industry 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.
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.

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

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.

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.

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.

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/.
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
Message | Symbol Created |
---|---|
90123678812 | UPC-A |
90123678812|02 | UPC-A with 2-digit add on |
0123456 | UPC-E |
0123456|95000 | UPC-E with 5-digit add on |
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:
Message | Symbol Created |
---|---|
97802161594 | EAN-13 |
978020161594|02 | EAN-13 with 2-digit add on |
71245126 | EAN-8 |
71245126|95000 | EAN-8 with 5-digit add on |
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.

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.
Monterey Barcode Creator allows encoding all 256
characters as well as 4 special symbol characters: FNC1
, FNC2
, FNC3
and 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.
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.
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 followed19421123450011
is a SCC-14 number. [3]15
is the AI for Sell by Date. The value followed991231
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 is101234
.
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.
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
AI | Name | Constraint | Short Name |
---|---|---|---|
00 | SSCC (Serial Shipping Container Code) | n2+n18 | SSCC |
01 | Global Trade Item Number | n2+n14 | GTIN |
02 | GTIN of Trade Items Contained in a logistic unit | n2+n14 | CONTENT |
10 | Batch or lot number | n2+an..20 | BATCH/LOT |
11 | Production date (YYMMDD) | n2+n6 | PROD DATE |
12 | Due date (YYMMDD) | n2+n6 | DUE DATE |
13 | Packaging date (YYMMDD) | n2+n6 | PACK DATE |
15 | Best before date (YYMMDD) | n2+n6 | BEST BEFORE or SELL BY |
17 | Expiration date (YYMMDD) | n2+n6 | USE BY OR EXPIRY |
20 | Product variant | n2+n2 | VARIANT |
21 | Serial number | n2+an..20 | SERIAL |
22 | Secondary data for specific health industry products | n2+an..29 | QTY/DATE/BATCH |
240 | Additional product identification assigned by the manufacturer | n3+an..30 | ADDITIONAL ID |
241 | Customer part number | n3+an..30 | CUST. PART NO. |
242 | Made-to-Order Variation Number | n2+n..6 | Variation Number |
250 | Secondary serial number | n3+an..30 | SECONDARY SERIAL |
251 | Reference to source entity | n3+an..30 | REF. TO SOURCE |
253 | Global Document Type Identifier | n3+n13+n..17 | DOC. ID |
254 | GLN Extension component | n3+an..20 | GLN EXTENSION |
30 | Variable count | n2+n..8 | VAR. COUNT |
310n-369n | (Trade and logistic measurements) | n4+n6 | -- |
337n | Kilograms per square metre | n4+n6 | KG PER m2 |
37 | Count of trade items contained in a logistic unit | n2+n..8 | COUNT |
390(n) | Amount payable - single monetary area | n4+n..15 | AMOUNT |
391(n) | Amount payable - with ISO currency code | n4+n3+n..15 | AMOUNT |
392(n) | Amount payable for a Variable Measure Trade Item - single monetary unit | n4+n..15 | PRICE |
393(n) | Amount payable for a Variable Measure Trade Item - with ISO currency code | n4+n3+n..15 | PRICE |
400 | Customer's purchase order number | n3+an..30 | ORDER NUMBER |
401 | Consignment number | n3+an..30 | CONSIGNMENT |
402 | Shipment Identification Number | n3+n17 | SHIPMENT NO. |
403 | Routing code | n3+an..30 | ROUTE |
410 | Ship to - deliver to Global Location Number | n3+n13 | SHIP TO LOC |
411 | Bill to - invoice to Global Location Number | n3+n13 | BILL TO |
412 | Purchased from Global Location Number | n3+n13 | PURCHASE FROM |
413 | Ship for - deliver for - forward to Global Location Number | n3+n13 | SHIP FOR LOC |
414 | Identification of a physical location Global Location Number | n3+n13 | LOC No |
415 | Global Location Number of the Invoicing Party | n3+n13 | PAY |
420 | Ship to - deliver to postal code within a single postal authority | n3+an..20 | SHIP TO POST |
421 | Ship to - deliver to postal code with Three-Digit ISO country code | n3+n3+an..9 | SHIP TO POST |
422 | Country of origin of a trade item | n3+n3 | ORIGIN |
423 | Country of initial processing | n3+n3+n..12 | COUNTRY - INITIAL PROCESS. |
424 | Country of processing | n3+n3 | COUNTRY - PROCESS. |
425 | Country of disassembly | n3+n3 | COUNTRY - DISASSEMBLY |
426 | Country covering full process chain | n3+n3 | COUNTRY - FULL PROCESS |
7001 | NATO stock number | n4+n13 | NSN |
7002 | UN/ECE meat carcasses and cuts classification | n4+an..30 | MEAT CUT |
703(s) | Approval number of processor with ISO country code | n4+n3+an..27 | PROCESSOR # s4 |
7003 | Expiration Date and Time | n4+n10 | EXPIRY DATE/TIME |
8001 | Roll products - width, length, core diameter, direction, and splices | n4+n14 | DIMENSIONS |
8002 | Electronic serial identifier for cellular mobile telephones | n4+an..20 | CMT No |
8003 | Global Returnable Asset Identifier | n4+n14+an..16 | GRAI |
8004 | Global Individual Asset Identifier | n4+an..30 | GIAI |
8005 | Price per unit of measure | n4+n6 | PRICE PER UNIT |
8006 | Identification of the component of a trade item | n4+n14+n2+n2 | GCTIN |
8007 | International Bank Account Number | n4+an..30 | IBAN |
8008 | Date and time of production | n4+n8+n..4 | PROD TIME |
8018 | Global Service Relation Number | n4+n18 | GSRN |
8020 | Payment Slip Reference Number | n4+an..25 | REF No |
8100 | GS1-128 Coupon Extended Code - NSC + Offer Code | n4+n1+n5 | - |
8101 | GS1-128 Coupon Extended Code - NSC + Offer Code + end of offer code | n4+n1+n5+n4 | - |
8102 | GS1-128 Coupon Extended Code - NSC | n4+n1+n1 | - |
90 | Information mutually agreed between trading partners (including FACT DIs) | n2+an..30 | INTERNAL |
91-99 | Company internal information | n2+an..30 | INTERNAL |
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.
Barcode | Data 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 |
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
.
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:

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.
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.
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
.

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.