The physical dimensions of a printed QR code, driven by module width: plan at least 2×2 cm for close scanning, scale by the 10:1 distance rule, and never print modules below ~0.5 mm.
Print size is where QR theory meets the physical world: a symbol that is mathematically perfect at any size becomes unscannable below a minimum physical dimension, because cameras, printers, and human hands all have resolution limits. Sizing a printed QR code correctly means balancing three numbers — the module width, the symbol version, and the viewing distance.
Module width: the atomic unit
The module width (the physical size of one module square) is the controlling dimension. The specification's absolute minimum is 0.25 mm per module, but that figure assumes ideal industrial imagers; for phone cameras in real conditions, 0.35 mm is the practical floor and 0.5 mm is the recommended minimum for commercial print. Below these widths, ink spread merges adjacent modules, sensors cannot resolve individuals, and the timing tracks — one module wide — dissolve first.
Computing the total size
Total symbol width = (modules per side) × (module width), plus the quiet zone of 4 modules on each side. A Version 4 code (33 modules) at 0.5 mm modules: 33 × 0.5 = 16.5 mm for the symbol, plus 8 × 0.5 = 4 mm of quiet zone, for 20.5 mm total. Work this arithmetic before committing to a layout — designers who allocate "about 2 cm" for a Version 10 code discover too late that it needs nearly 4 cm at safe module widths.
Minimum sizes by use case
For close-range scanning (business cards, product labels, receipts viewed at 15–30 cm), the practical minimum is about 2×2 cm including quiet zone, for low-version symbols (1–4). Below 2 cm, phone focus limits and module resolution make scanning unreliable. For each step up in viewing distance, scale by the 10:1 rule: 1 m viewing needs ~10 cm, 3 m needs ~30 cm. Packaging viewed at arm's length (50 cm) wants 4–5 cm codes. These are minimums — larger is always safer, and the cost of a larger code is only layout space.
Version versus size: the density lever
When a code does not fit its allocated space, the instinct is to shrink the modules — the wrong lever. The right lever is reducing the payload: a shorter URL drops the version, which at fixed module width shrinks the symbol. Halving the URL length can easily save two versions (16 modules per side), while halving the module width from 0.5 mm to 0.25 mm destroys scannability. If the payload cannot be shortened, the layout must grow — there is no optical trick that makes dense tiny codes reliable.
Substrate and process effects
The minimum module width assumes good print processes. Absorbent uncoated paper, flexographic printing on corrugated, and thermal printing all exhibit dot gain that effectively requires wider modules — budget 0.6–0.75 mm for rough substrates. Conversely, coated stock, offset litho, and laser marking hold 0.4 mm comfortably. Always proof on the final substrate and process: a code that scans from a laser proof may fail from the production flexo press.
Resolution of placed artwork
Vector artwork (SVG/PDF) has no resolution limit and is always preferred. If raster artwork is unavoidable, supply at least 300 DPI at final size — a 5 cm code needs roughly 600×600 px minimum, and more is better. Never upscale a small PNG to fit a large layout; the interpolated module edges will fail binarization.
Diagram description: Sizing chart: Version 2, 5, and 10 symbols at 0.5 mm module width with total dimensions labeled, plus a substrate guide showing minimum module widths for coated, uncoated, and thermal printing.
