GS1 UPC/EAN Barcode Font User Manual
IDAutomation's UPC/EAN Barcode Font Advantage Package is an advanced font product with encoders, macros, and source code that uses a single font file to create UCC-12, UPCA, UPCE, EAN8, EAN13, JAN, ISBN, and Bookland barcodes. This font matches the latest GS1, ANSI, ISO, and IEC 2000 specifications.
Buy License Support Download Demo Release Log
UPC / EAN Barcode Implementation Guidelines
Font Size and Print Quality
The UPC / EAN barcode font characters are all contained in a single font represented in several different heights. IDAutomation's UPC / EAN barcode fonts were created according to the latest GS1, UCC, EAN, and ISO/IEC 15420 standards so that the nominal size is achieved when printed at 16 points (or 18 points for 203 DPI printers). Because the standards allow a magnification factor of .8 to 2.0, the fonts may be printed as small as 12 points and as large as 32 points. For best results, these fonts should be printed at the largest point size and height possible in this range. When using a printer with less than 600 DPI, only certain font sizes may be used as defined in the specifications.
Font Height
Fonts with "S" in the name are "shortened height" fonts that are below what the UCC recommends. However, IDAutomation has observed these shorter symbols used with UPC-A and UPC-E barcodes. Fonts with "M" in the name are medium-height fonts and are recommended for printing EAN-8 and UPC-E barcodes. Fonts with "L" in the name are the largest with a height of approximately 22mm when printed at 16 points and are recommended for printing UPC-A and EAN-13 barcodes.
Quiet Zone
IDAutomation recommends a quiet zone approximately 3 times the thickest bar in the barcode, or about 12 times the X dimension. The minimum quiet zones according to ISO specifications are as follows:
Barcode Type | Left Quiet Zone | Right Quiet Zone |
EAN-8 | 11X | 7X |
EAN-13 | 7X | 7X |
UPC-A | 9X | 9X |
UPC-E | 9X | 7X |
Add-on | na | 5X |
Quiet zones are automatically set with the correct spacing when using IDAutomation's font encoder tools, including the Online Barcode Font Encoder. If necessary to maintain the quiet zones during graphic design where images may overlap the symbol generated, the greater-than and less-than symbols may be used as defined in Figure 1-4.
GTIN Compliance
To be fully GTIN (Global Trade Item Number) compliant, all UPC and EAN numbers should be stored in databases as 14-digit numbers and filled in with zeros for the spaces to the left. For example, a UPC-A barcode of 123456789012 would be represented as 00123456789012 in the database of a GTIN-compliant system. When encoding complete GTIN-14 numbers, GS1 DataBar may be used. This symbology may be used in all retail checkout systems after January 1, 2011.
Barcode Type | GTIN Type | GTIN Storage |
EAN-8 | GTIN-8 | 000000???????? |
EAN-13 | GTIN-13 | 0????????????? |
UPC-A | GTIN-12 | 00???????????? |
UPC-E | GTIN-12 | 00???????????? |
GS1 DataBar | GTIN-14 | ?????????????? |
Human-Readable Variation
Fonts that exclude the normal human-readable characters are provided in this package to support the printing of the human-readable variation according to ISO/IEC 15420 2000 Figure E.3 with the font names ending with the letter "n" (for no HR) or "ne" (no HR and equal guard bars). When using this variation, a separate custom field must be placed below the symbol according to the specification. The human-readable variation should only be used when required. These fonts are provided in the HRVariation folder of the product package.
Barcode Font Printing & Character Mapping
To create proper UPC and EAN barcode types, the characters printed must be selected from the tables below. To provide for easy integration into applications, IDAutomation provides several Font Encoders that are free to use with this package. The font encoders automatically format the characters to the barcode font. When creating a single barcode, consider using the Online Font Encoder.
All symbols of the UPC / EAN barcode symbology have been mapped to the standard PC keyboard. This layout is presented in Figures 1-1 through 1-5. The following barcodes should be generated as follows, reading from left to right:
UPC-A
Also referred to as UCC-12. Encodes GTIN-12 numbers.
- The number representing the first digit from Figure 1-3.
- Normal guard pattern from Figure 1-4.
- The number representing the first digit from Figure 1-2.
- 5 digits from character set A of Figure 1-1.
- A center pattern.
- 5 symbols from character set C of Figure 1-1.
- The last (or 12th) digit from Figure 1-2.
- Normal guard pattern from Figure 1-4.
- The last (or 12th) digit from Figure 1-3.
Below is a sample of the UPC-A barcode encoding the number 20348934382
with a check digit of 2, created with IDAutomation's
Online Font Encoder.
To create this barcode, paste the text string of W(c03489*NONSMm(W
into a word processor and select the UPC/EAN barcode font.
UPC-E
Also referred to as the zero-suppression barcode, UPC-E encodes some GTIN-12 numbers that can be compressed.
- The number representing the prefix digit from Figure 1-3.
- Normal guard pattern from Figure 1-4.
- 6 symbols from character sets A or B.
- Special guard pattern from Figure 1-4.
- The number representing the check character from Figure 1-3.
EAN-13
Also referred to as ISBN, Bookland, ISSN & JAN. Encodes GTIN-13 numbers.
- The EAN-13 book barcode is generated from the ISBN number assigned to it. When encoding ISBN in an EAN-13 barcode, the ISBN number is preceded by the number 978 and the ISBN check digit is not used. When the ISBN number is encoded in the EAN-13 barcode in this way, it is often called Bookland. A 5-digit add-on barcode is optional and can contain the price of the book.
- When encoding ISSN in an EAN13 barcode, the ISSN is preceded by the number 977 and the ISSN check digit (the last of the 8 digits) is not used. A two-digit number, usually the number "00" (a two-digit price code) is added to the end, and then the normal EAN check digit is added. Periodicals may have a two-digit add-on representing the issue number.
- The JAN codes are the same as the EAN codes, except the first two characters are set to "49".
- The number representing the first digit encoded by a variable parity, from Figure 1-3.
- Normal guard pattern from Figure 1-4.
- 6 symbols from character sets A and B of Figure 1-1. The difference between character sets A and B (called variable parity) is how the leading digit is encoded. This can be automatically calculated with font encoder tools, or can be calculated manually by reviewing the variable parity section below.
- A center pattern.
- 6 symbols from character set C of Figure 1-1.
- Normal guard pattern from Figure 1-4.
Variable Parity in EAN-13
In EAN-13, the leading digit is encoded into the left half of the symbol by using variable parity between character sets A and B according to the following VB source code:
Select Case LeadingDigit
Case 0 Encoding = "AAAAAACCCCCC"
Case 1 Encoding = "AABABBCCCCCC"
Case 2 Encoding = "AABBABCCCCCC"
Case 3 Encoding = "ACCCCCC"
Case 4 Encoding = "ABAABBCCCCCC"
Case 5 Encoding = "ABBAABCCCCCC"
Case 6 Encoding = "ABBBAACCCCCC"
Case 7 Encoding = "ABABABCCCCCC"
Case 8 Encoding = "ABABBACCCCCC"
Case 9 Encoding = "ABBABACCCCCC"
End Select
EAN-8 (Encodes GTIN-8 numbers.)
- Normal guard pattern from Figure 1-4.
- 4 symbols from character set A of Figure 1-1.
- A center pattern.
- 4 symbols from character set C of Figure 1-1.
- Normal guard pattern from Figure 1-4.
EAN-14
EAN-14 is a different barcode type created with ITF or Code 128.
Figure 1-1: UPC / EAN Barcodes with Human-Readable Characters.
These are the primary barcodes with the number representing the symbol printed at the bottom.
Digit Value | Character Set A | Character Set B (ASCII + 17) |
Character Set C (ASCII + 27) |
0 | 0 | A | K |
1 | 1 | B | L |
2 | 2 | C | M |
3 | 3 | D | N |
4 | 4 | E | O |
5 | 5 | F | P |
6 | 6 | G | Q |
7 | 7 | H | R |
8 | 8 | I | S |
9 | 9 | J | T |
Figure 1-2: UPC / EAN Barcodes without Human-Readable Characters Below.
Used for far-left and far-right digits of UPC-A symbols and other barcodes as required.
Digit Value | Character Set A (ASCII + 49) |
Character Set C (ASCII + 59) |
0 | a | k |
1 | b | l |
2 | c | m |
3 | d | n |
4 | e | o |
5 | f | p |
6 | g | q |
7 | h | r |
8 | i | s |
9 | j | t |
Figure 1-3: UPC / EAN Numbers and Characters without Barcodes.
These are used as required for human interpretation but are not printed as a barcode. Digit value "N" is located at character "Z" in the human-readable variation implementation.
Digit Value | numbers only | (ASCII + 37) / (ASCII + 64) |
0 | U | 85 |
1 | V | 86 |
2 | W | 87 |
3 | X | 88 |
4 | Y | 89 |
5 | u | 117 |
6 | v | 118 |
7 | w | 119 |
8 | x | 120 |
9 | y | 121 |
N | Z | |
Greater symbol | > | |
Dash "-" | - | |
Less symbol | < | |
Add-on Greater | ' |
Figure 1-4: UPC / EAN guard patterns and special characters.
Figure 1-5: Add-on UPC / EAN Barcodes with Human-Readable Characters. These barcodes can be used for ISSN, ISBN Bookland, and others that require an add-on barcode. The human-readable character is printed above the barcode.
Digit Value | Character Set A | ASCII | Character Set B | ASCII |
0 | " | 34 | z | 122 |
1 | # | 35 | = | 61 |
2 | $ | 36 | ? | 63 |
3 | % | 37 | @ | 64 |
4 | & | 38 | [ | 91 |
5 | , | 44 | \ | 92 |
6 | . | 46 | ] | 93 |
7 | / | 47 | _ | 95 |
8 | : | 58 | { | 123 |
9 | ; | 59 | } | 125 |
UPC / EAN Font Specifications
X-Dimension and Magnification Factor
The X-dimension (X is the width of the narrow bar) is listed below for various point sizes in millimeters and mils. 1 mil is equal to 1/1000 of an inch.
Point Size | X-Dimension | Magnification Factor | 203 DPI* | 300 DPI* | |
36 | .75 mm | 30 mil | 2.20 | Y | Y |
32 | .66 mm | 27 mil | 2.00 | Y | |
30 | .62 mm | 25 mil | 1.88 | Y | |
28 | .57 mm | 23 mil | 1.75 | Y | |
24 | .49 mm | 20 mil | 1.50 | Y | Y |
20 | .44 mm | 17 mil | 1.35 | Y | |
18 | .38 mm | 15 mil | 1.18 | Y | |
16 | .33 mm | 13 mil | 1.00 | Y | |
12 | .25 mm | 10 mil | 0.80 | Y | Y |
* When using a printer with less than 600 DPI, print at the following point sizes to create accurate barcodes:
203 DPI Thermal Printer | 300 DPI Printer |
12, 18, 24, 30, 36 | 12, 16, 20, 24, 28, 32, 36 |
Symbol Height
Five different versions of the UPC / EAN barcode fonts are provided
to support different height requirements. The last character in the
UPC / EAN font name determines the height of the barcode with
the shortest being "XXS" and the tallest being "L." Five
additional fonts are provided for the
human-readable variation
implementation and can be identified by the unique ending character
of "n" or "ne".
Purchase Font Name | Evaluation Font Name | Font Height at 16 pt* |
IDAutomationUPCEANXXS | IDAutomationSUPCEANXXS | 0.20" / 5 mm |
IDAutomationUPCEANXS | IDAutomationSUPCEANXS | 0.40" / 10 mm |
IDAutomationUPCEANS | IDAutomationSUPCEANS | 0.55" / 14 mm |
IDAutomationUPCEANM | IDAutomationSUPCEANM | 0.71" / 18 mm |
IDAutomationUPCEANL | IDAutomationSUPCEANL | 0.87" / 22 mm |
* Measurements are approximate and were measured
when printed at the recommended print size of 16 points.
However, a magnification factor of .8 to 2.0 can be used, allowing printing at 12 to 32 points. Measurements do not include
the text below the symbol or the guard bars.
To print at a different height, find the font that has the
height closest to what is needed and use this formula to find
the point size to print the font at: |
UPC/EAN Font Names Used Before July 2003
Purchased Font Name | Evaluation Font Name | Font Height at 20 pt |
UPCEAN6 | SUPCEAN6 | 1/4" (.25") or .6 cm |
UPCEANs | SUPCEANs | 1/2" (.50") or 1.3 cm |
UPCEANm | SUPCEANm | 11/16" (.689") or 1.8 cm |
UPCEANt | SUPCEANt | 7/8" (.857") or 2.2 cm |