Feature Description

LEADTOOLS provides fast, highly accurate, and reliable UPC/EAN Barcode detection, reading, and writing support for .NET (C# & VB), C/C++, WinRT, iOS, macOS, Java, and web developers. The award-winning LEADTOOLS libraries help programmers add amazing, fully featured UPC/EAN Barcode technology to applications in record time.

Universal Product Code (UPC) and European Article Number (EAN) barcodes are two of the most widely adopted and longstanding barcode symbologies in use throughout the world to identify products in point of sale retail applications. There are several variants supporting different sizes and densities and therefore can be used in virtually any retail application, such as large warehouses with massive inventories and specialty shops dealing small items with limited space to attach barcodes.




UPC A Barcode

UPC-A is the most widely used barcode in the United States, as it is used extensively to identify consumer goods. UPC-A barcodes consist of 4 parts: number system, manufacturer code, product code, and a check digit. The number system is the number to the left and outside of the bars. The manufacturer code is the group of 5 digits on the left. The product code is the group of 5 digits on the right. The check digit is the number to the right and outside of the bars.


UPC E Barcode

The UPC-E symbol is a compressed version of the UPC-A symbol and is generally used anywhere a UPC-A symbol will not fit. The compression algorithm removes unneeded zeros from the underlying data structure effectively converting 10 characters into 6.


EAN-13 Barcode

The EAN/UCC-13 symbol is used internationally to identify consumer goods. It is based on the UPC-A symbol with one difference. The numbering system in UPC-A can only be one digit, 0-9; whereas, the EAN-13 numbering system consists of two digits, 00-99. The numbering system in EAN-13 is basically a country code. Additionally, EAN-13 is a superset of UPC-A, meaning EAN-13 barcode readers can also decode UPC-A symbols.

EAN-13 Data Structures

JAN Codes (Japanese Article Number)

JAN Codes are EAN-13 symbols that use 49 or 45 for the number system/country code. This barcode is used for the majority of products distributed in retail stores in Japan and is compatible with other UPC/EAN codes and supplements.

Bookland Codes

Bookland Codes are EAN-13 symbols that use the "978" number system and store book ISBN numbers without the ISBN check digit (last digit of the ISBN). For example, the ISBN for "Managing Human Resources" by Bohlander and Snell is 0-324-31463-9. To convert this to a Bookland code, prepend "978" to the beginning and drop the ISBN check digit (the last digit) and dashes resulting in 978032431463. Use that number to calculate the EAN-13 check digit which is 2. The final Bookland code is 9780324314632.


EAN-8 Barcode

The EAN/UCC-8 symbol is used internationally to identify consumer goods, but is shorter than EAN-13 symbols. Unlike UPC-E that can be expanded back into a UPC-A symbol, EAN-8 cannot be expanded into an EAN-13 symbol. Manufacturers must request separate EAN-8 and EAN-13 codes from the appropriate numbering authority.

EAN/UPC Supplementary Extensions

UPC-A, UPC-E, EAN-13, and EAN-8 symbols can include a supplemental symbol to the right of the main symbol. This additional symbol is not as tall as the main symbol and will contain 2 or 5 characters of data. This supplemental data represents periodical issue number or manufacturer suggested retail pricing up to $99.99.

EAN 2-Digit Supplementary Extension

EAN 2-Digit Supplementary Extension Barcode

The EAN 2 Extension represents periodical, such as magazines and newspapers, issue numbers.

EAN 5-Digit Supplementary Extensions

EAN 5-Digit Supplementary Extension Barcode

The EAN 5 extension represents the suggested retail price of books. The first digit represents the currency. The remaining 4 digits encode the amount. For example, "57500" indicates a suggested retail price of $75.00.

Other Types of Linear 1D Barcodes

Technology Related to UPC / EAN Barcode