Bar Codes - An Overview


CAPITAL Visual Builder supports more than 20 of the most popular bar code types or "symbologies" plus variations. This section provides a general overview of their application. Bar codes can be printed on invoices, stock labels, purchase orders, picking lists, delivery dockets and other documents. Any information you wish can be printed as a bar code, although the most commonly coded items include such things as product codes and customer codes.

Several issues should be considered before selecting a bar code symbology.

1. Does your industry have an accepted standard?

If the industry you are in has an agreed bar code format that it uses, this will probably decide which one you will select for use. Your customer may specify, for example, that "JAN-8" or "UPC-A" is the required bar code. In this case, the choice is made for you. If you do not have to conform to a particular format then you should select a bar code that prints as small as possible for a given number of characters. It must also support encoding of the characters you need bar coded. Certain bar code types take up more space (have a greater number of bars) for a given number of characters. The smallest bar codes tend to be able to encode less. For example, the bar code type "UPC-A" produces fairly small bar codes, but this topology is only able to encode numbers.

The bar code type "Code 39" can encode numbers, characters, and some punctuation. Compared to other types of bar codes it requires a lot of bars. This can present problems if the bar code labels or the spaces for bar codes reserved on your documents is limited. The bar code type "Code 93" produces a smaller bar code for the same number of characters to encode. Since both bar codes can encode letters and numbers, it is usually possible for you to code your stock based on your existing product codes, rather than have the computer assign a special, separate, numeric code for that purpose.

2. Do the products you handle already come bar coded?

If the products you stock already have bar codes on them you usually don't have to worry about printing your own bar codes. If not all the products you handle come with bar codes or you have no control over the product codes assigned to the goods you deal with, then a flexible symbology that can encode letters, numbers and punctuation is usually preferred. For example, if you select a bar code symbology that can only encode numbers and then discover that your product codes include letters of the alphabet, you will have to change your bar code. For example, if your product items have product codes like "123455" and "931121" try to determine if other products might have codes such as "123455B" or "12345-2". The letter "B" requires support for letters of the alphabet. The dash (-) symbol would require a bar code that enabled the encoding of at least some punctuation characters such as a dash.

3. Which bar code symbology is "best" ?

The basic rule of thumb is that the smallest bar code that does the job is the best. The more characters that a bar code symbology must encode, the larger the bar code will be. For example, bar code symbologies that can only encode the numbers 0-9 will produce smaller sized bar codes than a symbology that also handles letters of the alphabet. Even larger bar codes would be required for topologies that handled punctuation symbols and could differentiate between upper and lower case letters of the alphabet.

A further issue is whether the bar code scanning equipment you use can handle the bar codes you will be printing. There is little point in using a complex bar code symbology that also happens to produce relatively small bar codes, if your scanning equipment does not recognise that format.

4. Are special bar code printers required?

Any printer that has a Windows print driver and can print graphics (virtually all, these days) can support bar code printing using CAPITAL Visual Builder. If you intend to print labels then a printer that has support for tractor feed labels is recommended.

Laser printers have excellent graphics capabilities and can quickly and easily print bar codes. However, because these types of printers are sheet based, they can be very wasteful of paper or label resources, especially if you only require the printing of a few labels at a time. Laser printers are best used when you are printing large volumes of bar codes all the time, or when you simply want to include bar code data on standard forms such as invoices and delivery dockets. Besides laser printers, many inkjet/bubblejet type printers suffer from the same limitations.

Dot-matrix printers usually make excellent bar code printers. Their main advantages include low running costs and their ability to use low cost tractor fed paper. Printing a single bar code label, for example, is not wasteful if you use tractor fed label sheets. However, 24-pin dot-matrix printers are definitely recommended. If you intend to use an older 9-pin dot-matrix then you should carefully test the labels or documents printed to ensure that your scanner or reading device is capable of interpreting the bar code without difficulty. You may not be able to print a very small bar code with a complex symbology on an old 9-pin dot-matrix printer. You may be forced to use a less complex bar code symbology, increase the dimensions of the bar code, or upgrade your printing equipment.

5. Are there special rules for printing bar codes?

If you will be printing bar codes on products that will then be scanned by other companies it is important to be conservative. Firstly, determine what guidelines are available for the size, placement and text information that must be included with the bar codes that you produce. Some scanners have difficulty reading bar codes that are not printed on a white surface. Where possible it is always a good idea to avoid coloured backgrounds. The bars themselves should be printed in black for maximum contrast.

6. What special hardware is required for reading bar codes?

You should select a "keyboard wedge" type reader for compatibility with CAPITAL. You should also determine whether the reader you will be using is capable of interpreting the bar codes you will be printing. It is preferable that you test the combination before you start printing large quantities of bar codes.

7. Can CAPITAL work with a portable bar code reader?

Yes. CAPITAL can read an "ASCII" text file that contains stock take data. The text file must meet certain formatting conditions. This text file is usually uploaded from a portable bar code reader. This can be used to perform a stock take by scanning bar codes in a warehouse or other environment and then entering the physical count for those items. (Not entering a physical count usually means the quantity "read" was "1".) Consult the CAPITAL Installation Guide for more information on portable reader devices.

8. Do I need a special bar code number assigned to my stock?

If you have to conform to a particular industry association format then the answer is probably yes. You may be issued a certain range of numbers that only your company may use. If you will be bar coding for your own internal use, then it is suggested you try to use an existing code, such as your product code. You may use a separate product code/bar code combination if you wish. If your supplier has a product code and a bar code you may have no choice in the matter. In this case you might wish to use your stock's Product Code for your supplier or your own code, and your stock's Alternate Code for the bar code. CAPITAL can be configured to automatically identify a stock item by either the product code and/or the bar/alternate code. Users do not have to concern themselves about what code they are asking the computer to interpret. If you are using bar codes and product codes you should ensure that your product codes can never accidentally conflict with your bar codes. With a small degree of planning, this should not be a major problem.

generate/hint1.gif Remember: bar codes should always be printed in black on a white surface for best results.

Code 128

Code 39

Code 93

Codabar

UPC-A

UPC-E

EAN/JAN

EAN/JAN-8

EAN/JAN-13

Extended Code 39

Extended Code 93

HIBC

Interleave 2 of 5

PDF 417

UCC 128

Zip 4 Postnet

UPC-A

The Universal Product Code version A (UPC-A) bar code is the standard code for items that are for sale to the public. Probably the largest user of the UPC-A are grocery and department stores.

This bar code only encodes numeric information and must have an exact length. The checksum number is automatically generated by CAPITAL and cannot be printed without it. The length of the input string is 11 numbers for the standard UPC-A. The two and five digit supplementals are also supported when enabled. These are often used for multiple versions of the same product such as magazines and books. When using two digit supplementals, the length of the input string should be 13 numbers. The maximum length should be 16 numbers for a bar code with a 5 digit supplemental.

The number system character is normally printed in human-readable form to the left of the printed symbol. This number is always the first digit entered as the data. Remember that if you do not completely fill the data field with numbers, CAPITAL fills the bar code with leading zeros. If this happens, you always end up with a number system character of "0". The uses of each number system are described below:

generate/vb121.gif

The UPC-A bar code is used to encode a 12 digit number. The first digit is the number system character, the next ten digits are the data characters, and the last digit is the checksum character.

UPC-A bar codes have the following characteristics:

CODE 39 (3 of 9)

The Code 39 bar code (also called 3 of 9 ) is probably the most commonly used bar because it enables numbers, upper case letters, and some punctuation to be encoded. It is a standard for many government bar code specifications. The input string is printed as it is read except for lower case letters, which are converted to upper case. Any spaces are bar coded, as are other valid characters. The checksum parameter determines whether the optional modulus 43 checksum is appended to the end of the bar code. The list of valid characters for the Code 39 bar code includes:

Each bar code character consists of five bars and four spaces for a total of 9 elements, three of which are wide, hence the name 3 of 9. Wide elements are equal to a binary one (1) and narrow elements are equal to a binary zero (0).

To distinguish between the wide and narrow elements, CAPITAL prints the wide element 2, 2.5, or 3 times the width of the narrow element. All narrow elements are equal in width, as are all wide elements.

The 3 of 9 code is a discrete code, meaning there is a space between each character. The width of this space is equal to one narrow element. This code requires an extra character at the beginning and end of the code to be encoded. This character is the (*) character. CAPITAL automatically adds these characters to the code.

The 3 of 9 code is self checking, but CAPITAL has the option of adding a checksum character for each bar code message. The checksum character is the modulus 43 sum of all the character values in a given message (not including the start and stop characters) and is printed as the last character (if enabled).

EXTENDED CODE 39

The Extended Code 39 bar code supports every character in the ASCII character set except for ASCII 0 and those above ASCII 127. This enables full support of upper case and lower case letters, as well as control codes

CAPITAL actually generates 2 characters for each non-code 39 input string character when the extended Code 39 mode is enabled.

CAPITAL uses the single character whenever a standard Code 39 character is found to save on the width of the bar code. The extended Code 39 bar code can get very wide with very few characters because of the double character method of encoding. The checksum parameter determines whether the optional modulus 43 checksum is appended to the end of the bar code, as in Code 39.

CODE 93

The Code 93 bar code is a more compact version of Code 39, but is not quite as easy for bar code readers to read because of the way it is encoded. Code 93 derives its name from the fact that every character is constructed from 9 elements arranged into 3 bars with their adjacent spaces. The checksum parameter determines whether the optional modulus 43 checksum is appended to the end of this bar code.

A Code 93 consists of an area of white space (quiet zone) before and after the bar code, a start character, up to 30 data characters, 2 check characters (referred to as "C" and "K") and a stop character. Each symbol uses a series of characters which are represented by 3 bars and their adjacent spaces. The bars may be 1, 2, or 3 elements wide (except for the start/stop code, which contains a 4 element bar). Spaces may be 1, 2, 3, or 4 elements wide.

The start and stop character which is sometimes visually interpreted as an open square, is used to identify the leading and trailing ends of the bar code symbol. These characters are the same, except when used as the stop position. Then an additional single element termination bar is added.

EXTENDED CODE 93

The Extended Code 93 bar code uses Code 93 to encode the entire 128 ASCII character set by using combinations of control characters and basic data characters. The checksum parameter determines whether the optional modulus 43 checksum is appended to the end of this bar code.

HIBC

The Health Industry Bar Code (HIBC) bar code is a modified Code 39 bar code. This bar code uses all of the characters of Code 39. CAPITAL automatically inserts the required "+" character after the start character and before the stop character. The required modulus 43 checksum is inserted after your input string and before the ending "+" sign.

INTERLEAVED 2 OF 5

The Interleaved 2 of 5 bar code (also called "Code 25") is a numeric-only code that prints out a little larger than the UPC-A bar code when 10 digits are encoded. The interleaved 2 of 5 is an excellent choice for numeric only applications because it has the flexibility of having from 2 to 30 digits, has adjustable ratios as well as density and has a high read rate.

The interleaved 2 of 5 requires an even number of digits to be encoded, so CAPITAL automatically puts on a leading zero if the digit count is odd. The checksum parameter determines whether the optional modulus 10 checksum is appended to the end of this bar code. Remember that if the checksum is added, the input string needs to be odd (the checksum adds one character, making it even). If you have an even number of characters with the checksum enabled, it will be wider than without the checksum.

CODE 128

The Code 128 bar code is a very compact bar code for codes with all numeric information. It is also very good for alphanumeric bar codes. The Code 128 bar code is a variable-length bar code that can encode the full 128 ASCII character set. It also enables numeric data to be compressed into double the normal density by encoding two digits per encoded character.

Code 128 actually has three different character code subsets called Code A, B, and C that allow the bar code to be optimized for size. When using Code 128 Auto, CAPITAL automatically determines which character code subsets will result in the smallest bar code. One of these code subsets is initially selected as the first encoded character. As the data is encoded, the code subset is changed within the bar code if it will reduce the bar code size.

CODE SUBSET A includes all of the standard uppercase alpha-numeric keyboard characters plus the control and special characters.

CODE SUBSET B includes all of the standard uppercase alpha-numeric keyboard characters plus lower case alphabetic and the special characters.

CODE SUBSET C includes the set of 100 digit pairs from 00 through 99 inclusive, as well as special characters. This enables double-density numeric digits (two digits per bar-coded character) to be encoded.

You can force the subset to be subset A, B, or C by choosing that bar code specification.

UCC-128

UCC-128 is the name given by the Uniform Code Council to a specially defined subset of Code 128 used most often for shipping containers. The UCC-128 bar code uses the double-density mode of the Code 128 C symbology. UCC-128 uses the special Function Code 1 character and has an additional modulus 10 checksum before the normal mod 103 checksum. The input string for this bar code can be any length. The optional modulus 10 check character, which is calculated on all data digits, increases data integrity when keyboard data entry is used. Because it is used with keyboard entry, when enabled, this check character should be printed on the human-readable text underneath the bar code. Remember to use the underscore character ( _ ) as the last character in the text to print under the bar code. For example: ABC_ This character is automatically replaced by the modulus 10 checksum.

MSI Plessey

The MSI Plessey bar code is a self-clocking bar code used most often by grocery stores for shelf labels. MSI Plessey can only bar code numbers. This bar code always has a modulus 10 checksum at the end of it. The checksum parameter determines whether an additional modulus 10 or modulus 11 checksum is added to the bar code before the final checksum. This bar code can encode 2 to 30 numbers

The MSI Plessey bar code is a variable length bar code that can encode up to 15 numeric characters.

CODEBAR

The Codebar bar code can print numeric values and six punctuation characters. This bar code is useful for encoding dollar figures and mathematical figures because a decimal point, plus sign, and minus sign can be encoded. Since this bar code type can encode punctuation characters, it is somewhat wider than the 2 of 5 bar code. The Codebar bar code is a variable length bar code that can bar code the following 16 characters:

Codebar must begin and end with one of four special start/stop characters, A, B, C, D. If the input string does not begin and end with one of these characters, CAPITAL automatically inserts the "A" character at the beginning and/or the end of the bar code. This enables you to use this bar code with normal numeric data which is the bar code’s primary use. The checksum parameter determines whether a modulus 16 checksum or a modulus 10 checksum is appended to the end of the bar code.

The Codebar code is self checking, but CAPITAL can optionally add a mod 16 or mod 10 checksum character for each bar code message.

PDF417

Portable Data File 417 ( PDF417 ) is a two-dimensional bar code. Because it is two-dimensional, the PDF417 gives you high information density (the ability to encode large amounts of information in a very small area). This enables you to encode large amounts of data (up to 1 Kilobyte) on a single bar code.

The PDF also supports full ASCII, binary and numeric data, and can encode foreign-language character sets; this gives you the flexibility to encode almost whatever you like into the bar code.

A traditional bar code is really just a key to a record in an external database that contains useful information. PDF, however, contains the useful information in it. It is really a "portable data file". The advantage to this is that access to a database is unnecessary.

PDF Error Correction

Error-correction enables this bar code to make corrections for missing data due to a damaged or defaced label; part of the label can actually be missing. The redundancy built into the PDF can still result in all the information encoded being readable. If the information can not be read in its entirety, it provides no data at all. The error-correction values range from 0 (no error) to 8 (maximum correction).

Zip+4 POSTNET

The Zip+4 Postal Code (POSTNET Bar Code) is a bar code that is placed on envelopes or postcards to be mailed. It is used by the United States Postal Services (USPS) for high speed mail sorting.



CAPITAL VISUAL BUILDER