The UPC (Universal Product Code) is widely used in the USA as a retail code. However, it has wider application and this can result in some confusion.
The actual UPC code is a 10 digit code. The 10 digit number is preceded by a “number system” digit, which is 0 for the retail version, and followed by a check digit. In many retail systems only the 10 digits of the UPC code need to be entered in the event of a mis-scan, so there have been times when the leading 0 has not been included in the human readable form. However, other values of the number system digit are used for specific purposes (eg. 6 or 7 are used for manufacturing identification numbering, 3 for drug products, etc.).
The UPC-A code is one variant of a number of 12 digit codes widely used in the USA. Retail codes are usually thought of as those with 10 digits (or 11 if the checkdigit is being entered explicitly), and in fact are 12 digit codes made up of a leading 0, followed by 10 product digits and 1 checkdigit.
The library generates the barcode images for UPC-A if the leading 0 is provided, followed by the 10 digit product code. The check digit may either be entered explicitly or calculated by the library. This technique allows alternative leading digits to be used for their intended purposes. Users of such alternative codes will know what those leading digits may be, or may obtain the information from the authorised code provider.
The UCC has produced more than one specification of the UPC codes. The current (and GS1) specification suggests that the country code (always 0 in the USA) and the codes checkdigit should be printed aligned with the coded digits, but in the light margins. Earlier specifications suggested that these digits should be printed in different positions or not at all.
The library offers the choice of not printing the digits or of printing them in the light margins (using the Margin Indicators ON option) for both UPC-A and UPC-E codes.
UPC-A
UPC-E codes are shortened versions of UPC-A symbols designed for use in restricted spaces. By default the dLSoft libraries generate UPC-E symbols using the number system 0 from 6 digit data (and a check digit). The symbol may be forced to number system 1 by setting the Extra 1 flag.
UPC-E
UPC-A and UPC-E codes support 2 and 5 digit supplementaries.
The libraries also offer the option of creating UPC-E0 (number system 0) or UPC-E1 (number system 1) symbols from a suitable UPC-A number. These options should not be used unless the user has been assigned UPC-A number suitable for this reduction. Supplementaries are not supported for these modes.
More: