DEV Community

Hisa Araki
Hisa Araki

Posted on

GS1 Sunrise 2027 Might Not Fit Your Thermal Printer

GS1 Sunrise 2027 is the industry's push to get retail POS systems scanning 2D barcodes (GS1 QR Code / GS1 DataMatrix) by the end of 2027. It's not a mandate, but the upside is real: a single 2D symbol can carry a GTIN plus attribute data like lot number and expiry date, instead of a bare 1D barcode that can't.

During the transition, though, the 2D symbol has to be dual-marked alongside the existing 1D barcode (EAN-13/UPC). And if your printer is a common 203 dpi thermal printer, that requirement runs into a wall faster than you'd expect.

The 203 dpi printer can't quite hit the minimum 2D size

GS1's General Specifications set the minimum X-dimension for a 2D symbol at retail POS at 0.396 mm. A 203 dpi printer can only print in whole dots (1 dot = 0.125 mm):

Dots Size
3 dots 0.375 mm
4 dots 0.500 mm

3 dots (0.375 mm) falls just short of the 0.396 mm minimum, so 4 dots becomes the effective minimum. Meanwhile the 1D barcode (EAN-13) is locked to 3 dots (0.375 mm, 113.7% magnification) — it can't be scaled down further without going out of spec.

That small shortfall has an outsized effect on label size.

Side by side, it doesn't fit on a 50 mm label

GS1's placement guideline also has a "50 mm rule": the 2D symbol has to sit within 50 mm of the center of the linear barcode. That part's achievable at 4 dots. The real problem is label area.

At 203 dpi / 4 dots:

  • EAN-13 + GS1 QR (V4): side by side, 62.9 × 29.5 mm
  • EAN-13 + GS1 DataMatrix (20×20): side by side, 53.4 × 29.5 mm

Common 50 mm-wide retail labels simply can't fit either combination side by side — even the smallest DataMatrix (GTIN only, 16×16) comes out to 51.4 mm. Stack them vertically instead, and the width problem goes away, but now you need 40–50 mm of height, which eats almost all the space left for product name, price, and expiry text.

Verification testing hasn't covered 203 dpi

GS1 Japan published read-performance verification results in October 2025 — but the printers tested were 300/305/360 dpi only. The printer resolution that's actually dominant on the ground in Japan was never tested.

We wrote up the math as a technical note

We dug into this quantitatively and published a technical note:

Short version of the conclusions:

  • 203 dpi + GS1 DataMatrix is the realistic option for the Japanese market: side-by-side placement is physically impossible, but a stacked layout satisfies both the 50 mm rule and a 50 mm-wide label — on labels of 50×40 mm or smaller, though, the codes alone nearly fill the label.
  • Whether rectangular DataMatrix (e.g. 12×36) is an acceptable retail-POS format is the deciding factor for small labels.
  • Moving to 300 dpi resolves the compliance issue, but side-by-side placement with QR is still difficult even then.

We've rolled seven open questions from this (how the 203 dpi minimum should be treated, whether 203 dpi gets included in verification testing, how the 50 mm rule is formally measured, etc.) into inquiries to both GS1 Japan and GS1 Global Office.

We're also building a library for this

In parallel, we're building BarBridge, a Rust core that generates GS1-compliant 1D/2D barcode pairs, automatically computing the largest compliant print size that still fits a given footprint — callable from Python, C/C++, C#, VB.NET, Java, PHP, and Node.js over a C ABI.

If you're dealing with 203 dpi label design, or have run into the same constraint, I'd like to hear about it — comments and corrections welcome.

Top comments (0)