Skip to content
UseQR
ESC

Jump to

MOVEOPEN50 places

Print & production

QR codes on thermal printers: dots, density and fading

Thermal label printers are 203 or 300 dpi, so each module must be a whole number of printer dots, at 203 dpi one dot is 0.125 mm and a readable module needs at least four. Use the printer's native QR command rather than an image, and remember direct thermal prints fade in weeks to months in heat and light.

View as MarkdownPaste this page into any AI assistant. It is plain, portable Markdown.

The dot grid is the law

A thermal head is a fixed row of heating elements: 203 dpi (0.125 mm dots) on most receipt and shipping-label printers, 300 dpi (0.085 mm) on finer label models. There is no sub-dot rendering, every module edge lands on a dot boundary or gets rounded to one. Two rules follow:

  1. Each module must be a whole number of dots. A module requesting 3.6 dots prints as an irregular mix of 3- and 4-dot modules, and the decoder's sampling grid drifts off the pattern.
  2. Use at least 4 dots per module, the floor established in DPI for printing. Below that, single-dot rounding errors are a large fraction of each module.
Dots per module Module at 203 dpi Module at 300 dpi
3 (marginal) 0.375 mm 0.254 mm
4 (floor) 0.500 mm 0.339 mm
6 (comfortable) 0.750 mm 0.508 mm
8 1.000 mm 0.677 mm

What fits on a real label

At 203 dpi with 6-dot modules (0.75 mm), a version 4 code, 33 modules, 41 with quiet zone, is a 30.8 mm square: comfortable on a 4 × 6 in shipping label alongside the address block, and workable on a 40 × 40 mm product label at 4-dot modules (20.5 mm). Receipts are narrower than they look: an 80 mm-wide receipt has ~72 mm printable, but keep the code small enough that the payload stays low-version, longer URLs make denser codes, and dense codes on 203 dpi paper are where failures start. Check any payload–size pairing with the size calculator.

Send the command, not a picture

Every serious label language generates QR codes in firmware: ^BQ in ZPL, equivalents in EPL, TSPL, DPL and ESC/POS. Firmware places each module on exact dot boundaries; a raster image sent from a design tool gets resampled onto the grid and reintroduces the rounding you are trying to avoid. Settings and workflow live in Zebra and label printer settings, and the full command syntax in the ZPL reference. If you must send an image (some consumer printers accept nothing else), generate the PNG at exactly the dot dimensions, e.g. a 41-module code at 6 dots is 246 × 246 px, so pixels map 1:1 onto dots.

Direct thermal fades: plan for it

Most receipt printers and many label printers are direct thermal: no ink, the paper itself darkens under heat. The chemistry keeps reacting after printing. In a wallet, a car, a sunny window or any warm environment, expect the print to fade (or the whole label to darken) within weeks to months; in cool, dark storage, a year or more. A QR code degrades before it disappears, losing contrast until scans get flaky. If the code must outlive a delivery cycle, specify thermal transfer instead: the decision table is on direct thermal vs thermal transfer.

Watch for dead elements

A burnt-out heating element prints a clean white vertical line down every label, through the code. One dead dot inside a 4-dot module is survivable; a dead dot on a module boundary can flip a whole column. Print a solid black test box weekly, look for white streaks, and spot-scan production labels, the habit that catches it is the verify station described in why verify that your QR code decodes.

FAQ

What size should a QR code be on a 203 dpi thermal printer?

Make each module a whole number of dots, at least four, 0.5 mm per module. A typical short-URL code (version 3–4) then comes out between 18 and 31 mm wide depending on dots per module.

Why is my thermal-printed QR code blurry or unreadable?

Usually fractional module sizes from sending a scaled image. Use the printer's native QR command, or generate the image at exact dot dimensions so each module maps to whole printer dots.

How long does a QR code last on a thermal receipt?

Direct thermal paper fades in weeks to months in heat, sunlight or a wallet, sometimes faster on a dashboard. For anything that must remain scannable beyond a delivery cycle, use thermal transfer with a ribbon.

Can I print QR codes on a receipt printer?

Yes, ESC/POS and similar command sets generate QR codes in firmware. Keep the payload short so the module count stays low, and expect the print to fade with time and heat.

Try it: free, no signup