QR codes for print: size, quiet zones, and error correction
Minimum physical size by scanning distance, the four-module quiet zone, error-correction levels L through H and when a logo overlay is safe, contrast requirements, and testing before the print run.
Size the code for the scanning distance
A useful starting estimate is a ten-to-one ratio: allow a scanning distance of about ten times the code’s width. A two-centimeter code is for close-up scanning; a poster read from three meters away calls for roughly thirty centimeters or more. Test the final-size print under realistic cameras and lighting.
- HandheldBusiness cards, product labels, and handouts: two to two and a half centimeters minimum, scanned up close, printed at 300 DPI or better so the module edges stay crisp.
- Across the roomPosters and signage: scale with the room—divide the longest realistic scanning distance by ten, then round up, because nobody steps closer in order to fail politely.
- Density raises the floorDensity raises the floor: every extra character adds modules, and a dense code printed small is the classic unscannable combination. Shorten the payload before reaching for a bigger print size.
The quiet zone is part of the code
Scanners find a QR code by locating its three finder squares against an empty margin. The specification demands a quiet zone of four modules on every side; crop tighter and scan rates drop even though the code still looks intact to the eye.
- Four modules minimumFour modules is a minimum, not a target: on cluttered packaging or busy backgrounds, more empty space around the code pays for itself in first-try scans.
- Keep intruders outText, borders, and logos must not intrude into the quiet zone—“scan me” copy belongs outside the margin, and a decorative frame needs its own gap from the modules.
- Margin is a controlQR Code Generator exposes the quiet zone directly as a margin control from 0 to 16 modules, defaulting to 4, so the specification value is the path of least resistance.
Error correction buys damage tolerance
Reed–Solomon redundancy lets a QR code survive dirt, scratches, and deliberate occlusion. The four levels trade payload capacity for resilience: L recovers about 7 percent of codewords, M about 15, Q about 25, and H about 30—and each step up packs the same content into more modules and a denser grid.
The generator offers all four levels with M as the default. Its 2,000-byte input limit does not mean every payload fits: QR capacity also depends on the correction level and encoded content, and the tool reports an error when the symbol is too dense.
- L and ML and M suit clean, controlled surfaces: screens, documents, and packaging that will not be scuffed or weathered.
- Q and HQ and H suit hostile placements: outdoor signage, floor stickers, and anything expected to fade, crease, or collect grime.
- Logos need HH is the level that makes a center logo overlay survivable—the logo consumes redundancy budget, so keep it in the middle, covering well under thirty percent of the area, on a code generated at level H.
Contrast is a hard requirement
A scanner is a camera doing threshold math: it must separate dark modules from a light background reliably. Dark-on-light is the safe orientation—many readers struggle with inverted codes—and brand colors need judging as luminance, not as taste.
Print shifts contrast further: ink spreads slightly into paper, gloss laminates add reflections, and matte stock softens edges—so a color pair that barely passes on screen can fail on press. Build the margin in at design time, not at the reprint.
- Dark on lightClassic black on white is boring and undefeated; any dark foreground on a light background with a strong contrast ratio scans just as reliably.
- Failure colorsAvoid red on black, pastels on white, and gradients under the modules—each shrinks the effective contrast until inexpensive phone cameras start failing.
- Enforced at 3:1QR Code Generator requires at least a 3:1 foreground-to-background contrast ratio and rejects colors below it. Passing that check is only a starting point; scan the final printed code before distribution.
Shorter payloads print better
Every byte of content adds modules, and every added module makes each printed square smaller at a given size. A bare URL is the friendliest payload; a URL wrapped in tracking parameters can double the module count for nothing the person scanning will ever see.
- Trim the URLStrip the URL to what routing actually needs—protocol, host, path. Tracking parameters and session tokens belong in redirect logic, not in the ink.
- Watch the byte countThe generator reports the encoded byte count as you type, so you can watch a long URL push the code into a denser version before committing to print.
- SVG for printFor print artwork, export the SVG—vector output scales to any size without resampling—while the PNG download at 128 to 1,024 pixels is sized for screens and documents.
Test the proof, not the screen
A code that scans from your monitor says almost nothing about the printed object. Print a proof at final size on the final stock, and scan it with several phones from the real distance and angle—including an older camera and a dim room—before approving a run of ten thousand.
- Worst case firstScan the proof at the worst plausible distance and lighting, not the best; first-try success under bad conditions is the pass criterion.
- Re-test after changesRe-test after any change: a resize, a color tweak, or a logo swap invalidates the previous scan test, because all three alter the module geometry.
- Local by designEverything in the generator runs inside the browser tab—the content is encoded locally and never uploaded—so a draft Wi-Fi password or an unannounced campaign URL stays on your device while you iterate.
Frequently asked questions
How big does a printed QR code need to be?
Can I put a logo in the middle of a QR code?
What contrast do printed QR codes need?
Print is not the only way files leave your hands.
Photos carry location, device, and capture metadata—read and strip that hidden layer locally before the file goes anywhere.