You generated an EAN-13, it decodes first time, and it still looks wrong next to a retail symbol: the bars stop above the digits, there is no vertical zoning through the number, and the ">" at the end is missing. This is for anyone preparing label artwork, or explaining to a customer why their symbol looks different from what the scanner reads. It covers what the ">" is — the light margin indicator — why guard bars run down through the digits, and the only geometry a scanner cares about: quiet zones of 11 module widths left and 7 right. You get the module arithmetic, a worked fit on a 40 mm label, the ZXing route to the conventional layout, and the checks to run before artwork goes to press.
What the ">" after the digits means
The mark is the light margin indicator. The GS1 General Specifications recommend it as part of conventional EAN-13 artwork: one ">" printed at the right end of the human readable interpretation, level with the digits and below the bar row, inside the right quiet zone. Its single job is to show a person that the light margin — the empty paper after the last bar — exists and must stay empty. UPC-A carries two indicators, "<" and ">", because its first and last digits sit out in the quiet zones on both sides.
The indicator holds no data. No scanner reads it, no decoder measures it, and adding or removing one cannot change a decode result. It counts in exactly one place: artwork approval. When a label specification reproduces the GS1 figures, the ">" belongs on the proof; when it does not, leave the right margin as clean paper.
Why the bars run down through the digits
The zoning comes from the guard bars. Standard EAN-13 artwork extends the left guard, the centre guard and the right guard downward through the band the digits occupy. That frames the number into three areas: digit 1 alone in the left quiet zone, digits 2 to 7 under the left half of the bars, digits 8 to 13 under the right half. Twelve digits have bars above them; the first digit has none of its own.
The grouping mirrors the encoding rather than decorating it. The left half builds its six digits from two module pattern families, mixed in a combination fixed by digit 1; the right half uses a single family throughout. That structural split is what the centre guard marks on the printed label. Scanners decode the module row only, so the extended guards, the digit positions and the typeface sit outside the data — conventions for the people who read the label when the scanner cannot.
What a scanner actually reads: the quiet zone
The numbers that decide a no-read sit at the edges, not under the digits. An EAN-13 needs a quiet zone of 11 module widths on the left and 7 on the right, per ISO/IEC 15420 and the GS1 General Specifications. One module width — the x-dimension — is 0.330 mm at 100% magnification, and allowed magnifications run from 80% to 200%, so x spans 0.264 mm to 0.66 mm. Ink inside those margins at bar height, from a label border, bleed, or a price flag, is the first thing to measure when a symbol reads on the bench and fails on the line. For image-side causes, improving decode rates on damaged, low-contrast codes and 1D barcode preprocessing for rotation, blur and glare cover the rest of the list.
The geometry in numbers
Every question about EAN-13 artwork size is module arithmetic:
At 100% that is a 31.35 mm bar pattern, a 37.29 mm footprint with both quiet zones, and margins of 3.63 mm left and 2.31 mm right. The retail family at 100% magnification:
| Symbol | Bar modules | Left quiet zone | Right quiet zone | Footprint |
|---|---|---|---|---|
| EAN-13 | 95 | 11x (3.63 mm) | 7x (2.31 mm) | 37.29 mm |
| UPC-A | 95 | 9x (2.97 mm) | 9x (2.97 mm) | 37.29 mm |
| EAN-8 | 67 | 7x (2.31 mm) | 7x (2.31 mm) | 26.73 mm |
UPC-A shares the 95-module pattern and the same 37.29 mm footprint; it simply splits its 18 margin modules evenly. The full symbol anatomy, including how the 13th digit rides in the left half's pattern mix, is set out on the International Article Number reference page.
Worked example: an EAN-13 at 100% on a 40 mm label
Inputs: an example label 40.0 mm wide, a symbol at 100% magnification, and x = 0.330 mm, the GS1 nominal module. The rules are the 11x and 7x quiet zones from the formula block above.
- Left quiet zone: 11 × 0.330 mm = 3.63 mm
- Bar pattern: 95 × 0.330 mm = 31.35 mm
- Right quiet zone: 7 × 0.330 mm = 2.31 mm
- Footprint: 113 × 0.330 mm = 37.29 mm, which checks out as 3.63 + 31.35 + 2.31
Centred on the label, the paper each side of the bars is (40.0 − 31.35) / 2 = 4.33 mm. The left side needs 3.63 mm and clears by 0.70 mm; the right needs 2.31 mm and clears by 2.02 mm.
Decision: print at 100% and centre the bar pattern, holding at least 3.63 mm of clear paper from the first bar to the label edge. When a fit is close, use this working rule: if either side clears by less than one module width (0.330 mm at 100%), drop the magnification 10 points and re-run the four lines of arithmetic. At 90% the footprint falls to 113 × 0.297 mm = 33.56 mm, which usually rescues a tight label without touching the data content.
Drawing the conventional layout in ZXing
The writer produces the module pattern; the retail look comes from the renderer attached to it. In ZXing.Net, ZXing.Rendering.AlternateBitmapRenderer draws the human readable digits in the conventional layout with the leading digit outside the bars. On .NET 5 and later the class arrives through the ZXing.Net.Bindings.Windows.Compatibility package as ZXing.Windows.Compatibility.AlternateBitmapRenderer. Font choice is a renderer property, TextFont; which renderers and properties exist for your target is set by the binding package you reference.
Dim zxbc As New ZXing.BarcodeWriter
zxbc.Format = ZXing.BarcodeFormat.EAN_13
zxbc.Renderer = New ZXing.Windows.Compatibility.AlternateBitmapRenderer
zxbc.Options.Width = 300
zxbc.Options.Height = 120
Dim proof As Bitmap = New Bitmap(zxbc.Write("123456789012"))
The 300 and 120 are example pixel values. Test the bitmap instead of judging it by eye: decode it with the same library's reader and the returned string must equal 1234567890128. The writer derives the check digit from the 12 digits supplied — 3 × (2 + 4 + 6 + 8 + 0 + 2) + (1 + 3 + 5 + 7 + 9 + 1) = 92, so the check digit is 10 − 2 = 8.
Neither renderer ships a light margin indicator option. If the specification demands the ">", draw one text character yourself after the digits in the same band, or leave it off; no scanner will ever notice. For rendering the digits themselves, the EAN-13 bitmap generation walkthrough covers the whole pipeline, and camera barcode decoding follows the string from decode to validated data.
Checking artwork with a camera
Optical grading has to resolve the narrowest bar. Use 3 pixels per module as a working floor: at the 80% magnification minimum, x = 0.264 mm, so one pixel must cover no more than 0.264 / 3 = 0.088 mm of object. The camera resolution calculator converts that into sensor and lens numbers, and the card below runs the same check on your own inputs.
Worked check: the LS-CRD-0028 prints 2560 x 2048 pixels. Across a 60 mm field of view that is 60 / 2560 = 0.0234 mm per pixel, so a 0.264 mm module spans 0.264 / 0.0234 = 11.3 pixels and a 0.330 mm module about 14 — comfortably above the floor either way.
For bench decode trials of printed proofs, two fixed readers cover the range:
- Interface
- Fast Ethernet
- Resolution
- Up to 3 MP
- Interface
- Fast Ethernet
- Resolution
- 5 MP
The MV-ID3013PM-12M-WBN is a 1.3 MP compact reader with a 12 mm focal length. The LS-CRD-0047 reads at 60-120 mm, which suits a proof held on a bench stand.
- Resolution
- Up to 3 MP
- Shutter
- Global
- Interface
- USB
Glare is the other bench problem: glossy over-laminate throws specular reflection across the bars on a smart camera, and the MV-SC3000-C-HP is a semi-polarizing lens cover that removes most of it. The rest of the code reader accessories range adds light boards and protective covers:
Lens covers, light boards, I/O boxes and modules
30 models · from $39.00When the retailer wants a grade rather than a pass, formal barcode reader verification for label inspection to ISO/IEC 15416 measures the quiet zones and prints the report.
When the usual answer is wrong
"The > makes it scannable." It does not. The indicator is a human aid from GS1 artwork practice; an EAN-13 with no ">" decodes exactly as well as one with it, at any magnification.
"Shrink the symbol until it fits." Quiet-zone duty shrinks with the symbol, but not fast enough. On a 30.0 mm label at the 80% floor: x = 0.264 mm, bars 95 × 0.264 = 25.08 mm, margins 11 × 0.264 = 2.90 mm left and 7 × 0.264 = 1.85 mm right, total 29.83 mm. Centred, each side gets (30.0 − 25.08) / 2 = 2.46 mm, which is 0.44 mm short on the left. Pushed as far right as the rules allow, the right side keeps 30.0 − 2.90 − 25.08 = 2.02 mm against 1.85 mm needed: 0.17 mm of slack, under one module. Decision: a 30 mm label does not carry a compliant EAN-13; use a GS1 DataMatrix or GS1 QR Code holding the same GTIN, or an EAN-8 where an 8-digit number applies — its 26.73 mm footprint clears a 30 mm label with 1.59 mm to spare per side.
"A custom font breaks the scanner." The digits are never read by any decoder. OCR-B is the GS1 recommendation; any clear typeface decodes identically, so choose for the human keying the number.
"The digit grouping is part of the data." It is layout. The 13-character string is the same wherever the digits are printed, and the leading digit travels in the left half's pattern mix, not in bars of its own.
Checklist before the artwork goes to press
- Magnification between 80% and 200%: x between 0.264 mm and 0.66 mm.
- Left quiet zone 11x and right 7x, measured from the first and last bar to the nearest ink at bar height.
- Nothing at bar height inside either quiet zone: no label border, no bleed, no neighbouring print.
- Digits in the GS1 zones — 1 outside, 2 to 7 and 8 to 13 under the halves — in OCR-B or another clear face, off the bar row.
- The ">" only when the buyer's artwork specification reproduces the GS1 figure.
- A decode test with the production reader at the production distance, on a printed proof.
- An ISO/IEC 15416 grade where the retailer demands one.
Run the decode test with the reader that will do the job in production: start from the fixed code readers finder, or send us the label specification through the contact page and we will match a reader to it.
Questions
Does a missing > stop an EAN-13 from scanning?
No. Scanners decode the module row and measure the quiet zones; the light margin indicator sits below the bars and is never read. A symbol with no > decodes identically to one with it. Verification to ISO/IEC 15416 grades the bars and margins as well, not the typography, so the mark only matters when a label buyer's artwork specification asks for GS1-conventional layout.
What font should the digits under an EAN-13 use?
GS1 artwork rules recommend OCR-B. Scanners never read the human readable digits, so decoding is unaffected by any legible typeface — the audience is a person keying the number at a point of sale or a storeman reading a picking label. Keep the digits clear of the bar row, place digit 1 in the left quiet zone and the rest in the two groups, and size them so the tallest digit stays inside the label.
How wide is a full-size EAN-13 including quiet zones?
37.29 mm at 100% magnification: 113 module widths (95 for the bars, 11 left margin, 7 right) times the 0.330 mm module. At the 80% minimum the footprint is 113 × 0.264 mm = 29.83 mm. That 29.83 mm is the hard floor: no label narrower than it can carry a compliant EAN-13, however the artwork is arranged.
Can I print an EAN-13 below 80% magnification if my printer is sharp enough?
No. 80% magnification — an x-dimension of 0.264 mm — is the floor in the GS1 General Specifications. Below it the symbol is out of specification however cleanly the press prints, and the narrow bars challenge every scanner in the chain from retail point of sale to line readers. To carry a GTIN-13 on a small label, move to GS1 DataMatrix or GS1 QR Code: both hold the same number in a smaller footprint, and a fixed reader decodes them from the same image.
Why do some retail symbols also show a < on the left?
That is the UPC-A convention: UPC-A prints its first and last digits out in the quiet zones and marks both light margins with < and >. EAN-13 artwork shows only the right-hand >, because the leading digit already occupies the left margin. Some designers add both marks for symmetry; scanners ignore each one, so it is a style decision, not a scannability decision.
Is the first digit of an EAN-13 in the bars at all?
No. Only 12 digits have bars of their own. The leading digit is encoded by which of two module patterns (sets A and B) each of the six left-half digits uses, and the right half uses one pattern (set C) throughout. That is why the digit is printed outside the symbol: a scanner recovers it from the left half's pattern mix, not from bars under the numeral.


