ImageGear .NET v25.1 - Updated
UPC-A
User Guide > How to Work with... > Barcodes > Supported Barcode Types > UPC-A

The UPC-A code is the standard version of the UPC code and has 12 digits. It is also called UPC-12 and is very similar to the EAN code. The UPC-A code is a numeric code, which is able to display digits from 0 to 9. Each character consists of two lines and two spaces.

UPC-A encodes 12 digits. The first digit of the UPC-A code indicates what the code contains as follows:

0. Regular UPC code

1. Reserved

2. Articles where the price varies by weight: for example meat.

3. National Drug Code (NDC) and National Health Related Items Code (HRI)

4. UPC code which can be used without format restrictions. For use in-store on non-food items

5. Coupons

6. Reserved

7. Regular UPC code

8. Reserved

9. Reserved

The second to sixth digits indicate the producer of the article (UPC ID number). This number is issued by the Uniform Code Council (UUC). The seventh to eleventh digits show the individual article number issued by the producer. The last digit is a Modulo 103 checksum digit, which is calculated by ImageGear.

The height of the UPC-A symbol should be at least half of the length of the symbol.

An error is generated if you have characters in your barcode value that are not allowed. You can have 11 or 12 digits in the UPC-A value. You don’t need to include the 12th digit (checksum) since ImageGear calculates it anyway.

UPC-A requires a quiet zone, which should be at least the width of 10 narrow bars. This means that if you set the MinimumBarWidth property to 3 pixels (narrow bar size), you should set the HorizontalWhiteSpace property to 30 pixels.

The UPC-A barcode is also commonly written with 2 different bar heights. Typically, the height of the left, center and right guard bars are greater than the height of the bars encoding the actual barcode value, essentially creating a notch in the barcode where the text value can be written. The user has control over the size of this notch with the TextNotchPercent property.

The TextNotchPercent property can be set to a value of 0 to 50. This number represents the percentage of the tall bar height the short bars will be shortened by. For example, if TextNotchPercent is 10, and the bar height is set to 100 pixels, the tall bars (left, center and right guard bars) will be 100 pixels tall, and the short bars (bars encoding the value) will be 90 pixels tall.

If you plan to detect UPC-A barcodes, you should set the BarcodeType property to this barcode type so that the barcode engine specifically looks for UPC-A. If you don’t tell the barcode engine to specifically look for UPC-A barcodes, it might confuse a UPC-A barcode with an EAN-13 barcode.

An example:

The second to sixth digits indicate the producer of the article (UPC ID number). This number is issued by the Uniform Code Council (UUC). The seventh to eleventh digits show the individual article number issued by the producer. The last digit is a Modulo 103 checksum digit, which is calculated by the barcode engine. The 12th digit will be added or replaced by the barcode engine during a write to be the correct value for the checksum.