printing
QR code size for printing
How big to print a QR code, with the simple scan-distance rule, plus DPI, file format, contrast and finish tips so it scans first time.
The quick rule: a printed QR code should be about as wide as the scan distance divided by ten, then a bit bigger for safety. So a code you scan with a phone in your hand (~40 cm away) wants to be roughly 4 cm wide; one read from a metre away wants ~10 cm; a billboard seen from 20 m wants about 2 m. Treat that as a guideline, not a guarantee.
The 10:1 rule (and its safety margin)
This “10:1 ratio” is an industry rule of thumb, not part of the official QR standard. What actually matters is whether the camera can make out the individual squares (the modules). 10:1 just gives a typical phone enough resolution to do that across different devices and lighting.
Because real life is messier than the maths — angled scans, older cameras, dim light, glare, worn print — add roughly 20-30% on top of whatever the rule gives you. If the calculation says 10 cm, print at 12-15 cm. For an arm’s-length code, treat 2 x 2 cm as a sensible floor and don’t go smaller without testing.
Don’t crop the quiet zone
Every QR needs a blank margin of 4 modules on all four sides. That white border isn’t decoration — without it, a scanner can’t tell where the code ends and the page begins, which is one of the most common reasons a printed code won’t scan. dottr bakes this quiet zone in automatically, so don’t trim it off when you lay out your design.
File format and resolution
- Use SVG for print. It’s vector, so the same file is razor-sharp on a 2 cm sticker or a 2 m poster — no resolution ceiling, no maximum size. dottr exports SVG and PNG.
- Using PNG? Make sure it’s at least 300 DPI at the final printed size (600 DPI or SVG for large-format). DPI only means something relative to how big you’re printing — a fixed pixel count on its own tells you nothing.
- Never use JPEG. Its compression smears the fine grid in ways you won’t see on screen but that can render the printed code unscannable.
Contrast and finish
Dark code on a light background is the safe, universally recognised choice. Skip pale colours, busy photo backgrounds and inverted (light-on-dark) schemes unless you’ve tested them.
Then think about the material: matte beats glossy. Shiny stock and laminate bounce overhead lights, sun and phone flash straight into the lens, creating glare exactly where the camera needs contrast. If glossy is unavoidable, bump the size up by 15-20%.
Shorter URL, bigger blocks
A long web address packs in more data, which means more modules and a denser grid. A shorter URL draws a sparser code with bigger blocks — easier to scan, especially from a distance. Often that does more for distance scanning than simply enlarging a cluttered code. Running it through a short link first also lets you re-aim the printed code later. More on both in what makes a good QR code, static vs dynamic codes and how short links work.
Error correction on rough surfaces
QR codes carry redundant data so they still scan when damaged — levels run L (~7%) up to H (~30%). Higher levels help on curved, scuffed or dirty surfaces like bottles and packaging. But for the same URL, jumping to H can push the code up a version or two and add 40-65% more modules, making the grid denser — which can mean a larger print to stay readable. Reach for higher error correction only when the surface warrants it, not by default.
Make yours at dottr — it’s free and runs in your browser.