Printing decides everything
A QR code that works on screen can become unreadable once printed: ink bleeding on absorbent paper, a code shrunk to a centimeter, contrast lost on a colored background. On print there is no second chance — the flyer goes to a thousand-copy run with its flaws baked in. Most of the work therefore happens before the file reaches the printer.
Size is a function of scan distance
The practical rule: the farther the reader, the bigger the code. On a flyer or a menu held in hand, 2 cm (about 0.8 in) per side is a comfortable minimum; on a poster scanned from two meters away, plan for at least 8–10 cm. Never infer size from the screen — print a test page at scale and scan at real distance. The full distance-to-size ratios are in the print size guide.
Placement: flat face, quiet zone, call to action
- Flat surface: a code folded over a package edge or squeezed into a pouch seam deforms and becomes hard to read. Give it a fully flat face.
- Quiet zone: leave a white margin of at least four modules around the code — no text or logo may intrude.
- Call to action: a bare code doesn’t say why anyone should scan it. “Scan for the menu”, “Video instructions”, “10% off your first order” concretely double the scan rate.
- Height and light: on a poster, place the code at eye level rather than at floor level, and plan for the venue’s real lighting.
Static or dynamic?
A static code embeds the target directly: ideal for a link to your site, a menu, a vCard — nothing can expire or be cut off by a third party. A dynamic code goes through a redirection URL that lets you change the target after printing and count scans, but makes you dependent on the service hosting that redirect. For long-lived print (packaging, signage), static is the safe choice; the full comparison is in static vs dynamic QR codes.
Colors, logo, contrast
Customized codes scan less reliably than black on white — no reason to avoid it, but reason to follow the rules: dark modules on a light background, never the reverse, and strong contrast between the two. The detailed recommendations (and the pitfalls of inversion) are in colored QR codes; if you add a logo, raise the error correction — see QR code with logo.
The pre-print checklist
- Vector format: export the code as SVG for the printer — an enlarged PNG pixelates, an SVG stays sharp at any size.
- Full-scale test page: print it, then scan with at least two different phones, at real distance, in real lighting.
- Final target verified: open the decoded link — that’s the one being printed a thousand times, not the one you meant to use.
- Quiet zone intact in the final layout, not just in your source file.
- Error correction raised if a logo or graphic covers part of the code.