Bar Code Symbologies
The Following is a Detailed
Description of the Bar Code Symbologies Supported by B-Coder Pro.
*These have recently been added to B-Coder Pro.
We will be adding descriptions to this page soon.
.
Bar codes are like a printed version of the Morse code.
Different bar and space patterns are used to represent different characters. Sets of these
patterns are grouped together to form a "symbology". There are many types of bar
code symbologies each having their own special characteristics and features. Most
symbologies were designed to meet the needs of a specific application or a specific
industry. For example the UPC symbology was designed for identifying retail and grocery
items and Postnet was designed to encode Zip Codes for the US Postal Service
CODE 39 (Normal and Full ASCII versions)

The Normal CODE 39 is a variable length
symbology that can encode the following 44 characters:
1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ-. *$/+%. Code 39 is the most popular symbology in the
non retail world and is used extensively in manufacturing, military, and health
applications. Each Code 39 bar code is framed by a start/stop character represented by an
asterisk (*). The Asterisk is reserved for this purpose and may not be used in the body of
a message. B-Coder automatically adds the start and stop character to each bar code
therefore you should not include them as part of your bar code message. If you select the
NORMAL version of CODE 39 and your bar code text contains lower case characters, B-Coder
will convert them to upper case. If your bar code message contains any invalid characters,
B-Coder will prompt you with a warning message (if the Enable Invalid Warning Messages
option is selected in the Preferences menu).
Code 39 optionally allows for a (modulo 43) check
character in cases where data security is important. The health care industry has adopted
the use of this check character for health care applications. To enable the Code 39 check
character feature in B-Coder, select the option INCLUDE CODE 39 / I 2 of 5 CHECK
CHARACTER in B-Coder's Preferences menu. When this option is enabled, B-Coder will
automatically calculate and append the proper check character to all Code 39 symbols.
Another feature of Code 39 allows for concatenation of two
or more bar codes. It is sometimes advantageous to break long messages into multiple,
shorter, symbols. If the first data character of a Code 39 symbol is a space, some readers
will store the remainder of the symbol in a buffer and not transmit the data. This
operation continues for all successive Code 39 symbols with a leading space, with each
message appended to the previous one. When a message without a leading space is read, it
is appended to the previously scanned data in the buffer and the entire buffer is
transmitted as one long message.
The FULL ASCII version of Code 39 is a modification of the
NORMAL (standard) version that can encode the complete 128 ASCII character set (including
asterisks). The Full ASCII version is implemented by using the four characters: $/+%. as
shift characters to change the meanings of the rest of the characters in the Normal
Code 39 character set. Because the Full ASCII version uses shift characters in combination
with other standard characters to represent data not in the Normal Code 39 character set,
each non-standard character requires twice the width of a standard character in a printed
symbol.
Note: Because all of the characters used to
implement Full ASCII Code 39 are part of the Normal Code 39 character set, readers that do
not support Full ASCII Code 39 will still read Full ASCII Code 39 symbols. The reader will
output shifted characters as if they were normal Code 39 characters.
Top of Page
UPC-A, UPC-E, and UPC Supplementals
UPC-A with Supplemental UPC-E

UPC-A is a 12 digit, numeric symbology used in retail
applications. UPC-A symbols consist of 11 data digits and one check digit. The first digit
is a number system digit that usually represents the type of product being identified. The
following 5 digits are a manufacturers code and the next 5 digits are used to identify a
specific product.
UPC numbers are assigned to specific products and
manufacturers by the Uniform Code Council (UCC). To apply for a UPC number or for more
information, you can contact the UCC at 8163 Old Yankee Road, Suite J, Dayton, OH 45458
Tel: 513-435-3870
When specifying UPC-A messages, you may enter up to 11
digits. B-Coder will automatically calculate the check digit for you. If you enter less
than 11 digits or if you enter any digits other than 0 to 9, B-Coder will prompt you with
a warning message. If the option "Enable Invalid Message Warnings" in the
Preferences menu is not selected and you do not enter 11 digits, B-Coder will left pad
short messages with zeros and truncate longer messages so that the total length is 11.
UPC-E is a smaller, six digit, UPC symbology for number
system 0. It is often used for small retail items. UPC-E is also called "zero
suppressed" because UPC-E compresses a normal 12 digit UPC-A code into a six digit
code by "suppressing" the number system digit, trailing zeros in the
manufacturers code and leading zeros in the product identification part of the bar code. A
seventh check digit is encoded into a parity pattern for the six main digits. UPC-E can
thus be uncompressed into a standard UPC-A 12 digit number.
For UPC-E bar codes, you may enter up to 6 digits. Again,
B-Coder will calculate the check digit and truncate or pad the number to a total length of
6 digits as with UPC-A.
Both UPC-A and UPC-E allow for a supplemental two or five
digit number to be appended to the main bar code symbol. This supplemental message was
designed for use on publications and periodicals. If you enter a supplemental message, it
must consist of either two or five numeric digits. The supplemental is simply a small
additional bar code that is added onto the right side of a standard UPC symbol.
Top of Page
EAN-8 / EAN-13, BookLan and EAN
Supplementals
EAN-8 EAN-13 with supplemental (ISBN Version)

EAN or European Article Numbering system (also called JAN
in Japan) is a European version of UPC. It uses the same size requirements and a similar
encoding scheme as for UPC codes.
EAN-8 encodes 8 numeric digits consisting of two country
code digits, five data digits and one check digit. B-Coder will accept up to 7 numeric
digits for EAN-8. B-Coder will automatically calculate the check digit for you. If you
enter less than 7 digits or if you enter any digits other than 0 to 9, B-Coder will
display a warning message. If the option "Enable Invalid Message Warnings" in
the Preferences menu is not selected and you do not enter 7 digits, B-Coder will left pad
short messages with zeros and truncate longer messages so that the total length is 7.
EAN-13 is the Euro version of UPC-A. The difference between
EAN-13 and UPC-A is that EAN-13 encodes a 13th digit into the parity pattern of the left
six digits of a UPC-A symbol. This 13th digit, combined with the 12th digit, usually
represent a country code.
Both EAN-8 and EAN-13 support a supplemental two or five
digit number to be appended to the main bar code symbol. The supplemental is designed for
use on publications and periodicals. Supplemental messages must consist of either two or
five numeric digits and will appear as a small additional bar code on the right side of a
standard EAN symbol.
EAN bar code numbers are assigned to specific products and
manufacturers by an organization called ICOF located in Brussels, Belgium. Tel:
011-32-2218-7674
EAN-13 has been adopted as the standard in the publishing
industry for encoding ISBN numbers on books. An ISBN or BookLan bar code is simply
an EAN-13 symbol consisting of the ISBN number preceded by the digits 978. The
supplemental in an ISBN bar code is simply the retail price of the book preceded by the
digit 5. For example, if your ISBN number is 1-56276-008-4 and the price of the
book is $29.95 then you would enter 978156276008 as the bar code message and 52995
for the supplemental. If you choose BookLan as the bar code symbology, B-Coder will
automatically create the correct EAN-13 bar code if you supply just the first 10
digits of the ISBN number and optionally a price (without the preceding 5).
Top of Page
CODABAR

CodaBar is a variable length symbology that allows encoding
of the following 20 characters: 0123456789-$:/.+ABCD. CodaBar is commonly used in
libraries, blood banks, and the air parcel business. CodaBar uses the characters A B C and
D only as start and stop characters. Thus, the first and last digits of a CodaBar message
must be A B C or D and the body of the message should not contain these characters.
B-Coder will allow any length of CodaBar message as long as it contains valid characters
and starts and ends with a valid start/stop character. If you use lower case letters for A
B C or D, B-Coder will convert to upper case.
Top of Page
INTERLEAVED 2 OF 5

Interleaved 2 of 5 is a high density variable length
numeric only symbology that encodes digit pairs in an interleaved manner. The odd position
digits are encoded in the bars and the even position digits are encoded in the spaces.
Because of this, I 2 of 5 bar codes must consist of an even number of digits. Also,
because partial scans of I 2 of 5 bar codes have a slight chance of being decoded as a
valid (but shorter) bar code, readers are usually set to read a fixed (even) number of
digits when reading I 2 of 5 symbols. The number of digits are usually pre-defined for a
particular application and all readers used in the application are programmed to only
accept I 2 of 5 bar codes of the chosen length. Shorter data can be left padded with zeros
to fit the proper length. B-Coder will only accept numeric digits for I 2 of 5 bar codes.
If an odd number of digits is entered, B-Coder will Left-Pad one zero to the number
entered.
Interleaved 2 of 5 optionally allows for a weighted modulo
10 check character for special situations where data security is important. To enable the
I 2 of 5 check character feature in B-Coder, select the option INCLUDE CODE 39 / I 2 of
5 CHECK CHARACTER in B-Coder's Preferences menu. When this option is enabled, B-Coder
will automatically calculate and append the proper check character to all Interleaved 2 of
5 symbols.
Top of Page
DISCRETE 2 OF 5

Discrete 2 of 5 is a variable length numeric symbology very
similar to Interleaved 2 of 5 except that instead of encoding data in both the bars and
the spaces, data is only encoded in the bars. Because of this, discrete 2 of 5 is not as
compact as Interleaved 2 of 5 and also, odd numbers of digits may be encoded. Use of
Discrete 2 of 5 is not very common and few bar code readers support this symbology.
Top of Page
CODE 93

CODE 93 is a variable length symbology that can encode the
complete 128 ASCII character set. Code 93 was developed as an enhancement to the CODE 39
symbology by providing a slightly higher character density than CODE 39. CODE 93 also
incorporates two check digits as an added measure of security. Although CODE 93 is
considered more robust than CODE 39, it has never achieved the same popularity as Code 39.
CODE 93 bar codes are framed by a special start/stop character. B-Coder will automatically
add the start and stop characters as well as the check digits to each Code 93 bar code
therefore you should not attempt to include them as part of your bar code message.
Top of Page
CODE 128

Code 128 is a variable length, high density, alphanumeric
symbology. Code 128 has 106 different bar and space patterns and each pattern can have one
of three different meanings, depending on which of three different character sets is
employed. Special start characters tell the reader which of the character sets is
initially being used and three special shift codes permit changing character sets
inside a symbol. One character sets encodes all upper case and ASCII control characters,
another encodes all upper and lower case characters and the third set encodes numeric
digit pairs 00 through 99. This third character set effectively doubles the code density
when printing numeric data. Code 128 also employs a check digit for data security. In
addition to ASCII characters, Code 128 also allows encoding of four special function codes
(FNC1 - FNC4). The meaning of function code FNC1 and FNC4 were originally left open for
application specific purposes. Recently an agreement was made by the Automatic
Identification Manufacturers Assoc. (AIM) and the European Article Numbering Assoc. (EAN)
to reserve FNC1 for use in EAN applications. FNC4 remains available for use in closed
system applications. FNC2 is used to instruct a bar code reader to concatenate the message
in a bar code symbol with the message in the next symbol. FNC3 is used to
instruct a bar code reader to perform a reset. When FNC3 is encoded anywhere in a symbol,
any data also contained in the symbol is discarded. The four function codes can be
added to a message by selecting them from the bottom of the ASCII chart in B-Coder's
window.
Note: B-Coder will automatically select the proper
character sets and insert the necessary start character and shift codes so that the
resulting bar code will be as short as possible. The check digit will also be calculated
automatically by B-Coder.
Top of Page
EAN/UCC 128

The EAN/UCC 128 symbology is a variation of the original
Code 128 symbology designed primarily for use in product identification applications. The
EAN/UCC 128 specification uses the same code set as Code 128 except that it does not allow
function codes FNC2-FNC4 to be used in a symbol and FNC1 is used as part of the start code
in the symbol. The check digit in EAN/UCC128 symbols is also calculated differently than
in Code 128.
Top of Page
POSTNET

POSTNET (POSTal Numeric Encoding
Technique) is a 5, 9 or 11 digit numeric only bar code symbology used by the
U.S. Postal Service to encode ZIP Code information for automatic mail sorting by zip code.
The bar code may represent a five digit ZIP Code (32 bars), a nine digit ZIP + 4 code (52
bars) or an eleven digit Delivery Point code (62 bars).
POSTNET is unlike other bar codes because data is encoded
in the height of the bars instead of in the widths of the bars and spaces. Most standard
bar code readers cannot decode POSTNET. This symbology was chosen by the Postal Service
mainly because it is extremely easy to print on almost any type of printer. POSTNET is a
fixed dimension symbology meaning that the height, width and spacing of all bars must fit
within exact tolerances.
B-Coder will only create POSTNET bar codes that follow the
guidelines published by the Postal Service. B-Coder does not allow direct control over the
size of POSTNET bar codes.
NOTE: Most other Windows programs allow you to modify the
size of metafile graphic images pasted from the clipboard. If you change the size of a
POSTNET bar code even by a small amount, it will be completely unreadable by the
Postal Service bar code readers.
B-Coder will ignore non-numeric data in any bar code
message that you enter for POSTNET. For example, if you enter "Chicago, IL
60601-3222" for a POSTNET bar code message,
B-Coder will still create a correct bar code. This feature
allows you to cut an address line from another Windows program and paste it into B-Coder
without having to edit the bar code text.
Top of Page
Postal FIM Patterns
FIM or Facing Identification Mark patterns are another type
of postal bar code used in automated mail processing by the U.S. Postal Service. FIM
patterns are used for automatic facing and canceling of mail that does not contain a stamp
or meter imprint (business reply mail, penalty mail, etc.). They also provide a means of
separating business and courtesy reply mail from other letters. Three FIM patterns are
currently in use. FIM-A is used on courtesy reply mail that has been preprinted with
Postnet bar codes. FIM-B is used on business reply, penalty and franked (government) mail
that is not preprinted with Postnet bar codes. FIM-C is used on business reply, penalty
and franked mail that has been preprinted with Postnet bar codes. FIM patterns are placed
in the upper right corner along the top edge and two inches in from the right edge of
letters and cards. For more information about all postal bar codes contact your
local post office.
When you select a FIM pattern from the symbology menu, B-Coder
will immediately generate the requested pattern without switching from the
currently selected symbology and without having to select Build/Copy from B-Coder's Edit
menu.
Top of Page
PDF417

PDF417 is a high density 2 dimensional bar code symbology
that essentially consists of a stacked set of smaller bar codes. The symbology is capable
of encoding the entire (255 character) ASCII set. PDF stands for "Portable Data
File" because it can encode as many as 2725 data characters in a single bar code. The
complete specification for PDF417 provides many encoding options including data compaction
options, error detection and correction options, and variable size and aspect ratio
symbols. The symbology was published by Symbol Technologies, Inc. to fulfill the need for
higher density bar codes. The low level structure of a PDF417 symbol consists of an array
of code words (small bar and space patterns) that are grouped together and stacked
on top of each other to produce the complete printed symbol. An individual code word
consists of a bar and space pattern 17 modules wide. The user may specify the
module width, the module height, and the overall aspect ratio (overall height to width
ratio) for the complete symbol. A complete PDF417 symbol consists of at least 3 rows of up
to 30 code words and may contain up to 90 code word rows per symbol with a maximum of 928
code words per symbol.
The code words in a PDF417 symbol are generated using one
of three data compaction modes currently defined in the symbology specifications. This
allows more than one character to be encoded into a single data code word. Because
different data compaction algorithms may be used, it is possible for different printed
symbols to be created from the same input data. The symbology also allows for varying
degrees of data security or error correction and detection. Nine different error
correction levels are available with each higher level adding additional overhead to the
printed symbol.
B-Coder allows complete control over all optional features
of PDF417.
Top of Page
BPO 4 State Code (British Post Office,
Royal Mail Code)

BPO (British Post Office) 4 State Code is a new postal bar
code symbology that has been developed by the British Post office for encoding European
postcode data similar to the way the U.S. PostNET symbology is used for encoding Zip Code
data. At the time of this writing, the BPO 4 State Code has not been officially adopted as
the standard for European postal applications however it is anticipated that it will be
sanctioned sometime in 1995. The goal of BPO 4 State Code is to provide European countries
with a simple and efficient postal bar coding scheme.
The U.S. PostNET symbology encodes numeric characters in a
pattern of four bars per character with each bar being either tall or short (i.e. two
possible "states" for each bar). The U.S. technique thus allows for up to 16
different possible bar patterns for each set of four bars and is adequate for encoding the
ten digits zero through nine. Because European postcodes contain both alpha and numeric
characters, (thus requiring a minimum of 36 different possible patterns for the characters
A-Z and 0 to 9), each character in the BPO 4 State Code is encoded into four bars with
each bar having four possible "states". The four states are: tall bars,
short bars, medium height bars extended up from the middle of the symbol and medium height
bars extended down from the middle of the symbol. In theory,the BPO 4 State Code is
capable of encoding up to 128 different characters however only the characters A through Z
and 0 to 9 have been assigned unique bar patterns.
BPO 4 State Code is a fixed dimension symbology meaning
that the height, width and spacing of all bars must fit within exact tolerances. B-Coder
will only create BPO 4 State Code bar codes that follow the guidelines published by the
British Postal Service. B-Coder does not allow direct control over the size of BPO 4 State
Code bar codes.
NOTE: Most other Windows programs allow you to modify the
size of metafile graphic images pasted from the clipboard. If you change the size of a BPO
4 State Code bar code even by a small amount, it will be completely unreadable by European
Postal Service bar code readers.
Top of Page