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.
Remember: bar codes should always be printed in black on a white surface for best results.
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:
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:
They contain numeric data only.
They have two bars and two spaces per number.
They have seven elements per number.
A bar or space can be 1,2,3, or 4 elements wide.
The dark element is a binary one.
The light element is a binary zero.
The checksum is a require character.
The physical structure of the UPC-A symbol is as follows:
Left hand guard bars, encoded as 101.
Number system character, encoded as a left hand character.
First five data characters, encoded as left hand characters.
Center guard pattern, encoded as 01010.
Last five data characters, encoded as a right hand characters.
Checksum character, encoded as a right hand character.
Right hand guard bars, encoded as 101.
The UPC-E bar code is ideal for small packages because it is one of the smallest bar codes available. The UPC-E contains the same information as the UPC-A, except that four zeros are suppressed. The checksum parameter is ignored for this bar code because it is a required part of the bar code.
CAPITAL supports three forms of UPC-E. You can select UPC-E System 0 to enter six numbers and let CAPITAL give you a bar code with those same digits for system number 0. Choosing UPC-E System 1 gives you the same numbers for your system number 1. If you choose UPC-E11, you are required to perform the zero-suppression checks described below to ensure that the bar code works properly. Note that you can send any 11digit string and all correct ones are bar coded.
The UPC-E bar code is referred to as a zero-suppressed version of the UPC-A bar code. This version compresses the 11 numbers and the checksum into six numbers. Only bar codes with a number system character of 0 or 1 can be encoded into the zero-suppressed version. With the UPC-E bar code, the original 10 data characters (without the system code) must have at least four zeros in certain positions. The first five characters of the 10 are the manufacturer number. The last five characters are the product number.
If the manufacturer number ends in 000, 100, or 200, there are 1000 numbers between 00000 and 00999 available for the product number. The six characters come from the first two characters of the manufacturer number, followed by the last character of the item number, then the third character of the manufacturer number.
If the manufacturer number ends in 300, 400, 500, 600, 700, 800, or 900, there are 100 item numbers between 00000 and 00099 available. The six characters come from the first three characters of the manufacturer number, followed by the last two characters of the item number, then "3".
If the manufacturer number ends in 10, 20, 30, 40, 50, 60, 70, 80, or 90, there are 10 item numbers between 00000 and 00099 available. The six characters come from the first four characters of the manufacturer number, followed by the last character of the item number, then "4".
If the manufacturer number does not end in zero, then five item numbers between 00005 and 00009 are available. The six characters come from all five of the manufacturer identification numbers, then the last characters of the item number.
This bar code encodes numeric information only, and must have the same length as the UPC-A when the UPC-E 11 digit is selected. If the length is shorter CAPITAL fills the input string with leading zeros. The checksum number is automatically generated by CAPITAL. When 2 and 5 digit supplementals are used, the length of the bar code information is 13 and 16 characters, respectively.
EAN/JAN is used for products that are manufactured or sold outside the United States. The country origin is an integral part of the EAN/JAN specification: A UPC-A symbol with the first flag character set to zero.
The UPC, EAN, and JAN codes have several features in common. These are:
They contain numeric data only.
They have two bars and two spaces per character.
They have seven elements per character.
A bar or space can be 1, 2, 3, or 4 elements in width.
The dark element is a binary one.
The light element is a binary zero.
The checksum is a required character.
EAN/JAN-13 is used to encode 13 characters. The first two characters are numbers that identify the country of origin, the next ten characters are data characters, and the last character is the checksum character.
The left hand A character set is the same as the UPC-A left hand character set. The right hand character set is the same as the UPC-A right hand character set. The left hand B character set is a transposed version of the right hand character set. Both left hand B and the right hand character sets have even parity. The left hand A character set has odd parity.
The physical structure of an EAN/JAN-13 tag is as follows:
Left hand guard bars, encoded 101
Second flag character.
First five data characters, encoded as right hand character.
Center guard bars, encoded 01010
Second five data characters, encoded as right hand characters.
Checksum character, encoded as right hand character.
Right hand guard bars, encoded 101
The EAN/JAN-8 is a shorter and smaller bar code also used for non-United States applications. The EAN/JAN-8 bar is composed of 2 country code numbers, 5 numeric data characters, and a checksum number. The checksum number is automatically generated, making the input string a total of 7 numbers for the standard EAN/JAN-8, 9 for a bar code with a 2-digit supplemental and 12 for a bar code with a 5-digit supplemental. The checksum parameter is ignored because it is required.
The EAN/JAN-8 bar code encodes two flag characters, 5 data characters and a checksum character. The physical structure of an EAN/JAN-8 tag is as follows:
Left hand guard bars, encoded 101
Two flag characters, encoded as left hand A characters.
First two data characters, encoded as left hand A characters.
Center guard bars, encoded 01010
Last three data characters, encoded as right hand characters.
Checksum character, encoded as a right hand character.
Right hand guard bars, encoded 101
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:
The capital letters : A to Z
The number: 0 to 9
The space character.
The symbols: - . $ / + %
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).
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.
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.
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.
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.
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.
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 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.
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.
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:
Numbers: 0 to 9
Symbols: - $ : / . +
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.
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.
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).
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.