QR Code Printing Guide
Get QR codes off the screen and onto paper, packaging and signage without losing scannability.
On this page
Maximize contrast
Dark modules on a light background scan best — classic black on white is ideal. Avoid low-contrast color pairs and be cautious with inverted (light-on-dark) codes, which some scanners reject.
Preserve the quiet zone
Leave a clear margin around the code. Don't let text, borders or artwork encroach on it, and watch that trimming or folding doesn't cut into it.
Use vector SVG
Download SVG for print. Vectors stay razor-sharp at any size, whereas a small PNG scaled up becomes blurry and unreliable. Our tools export clean, script-free SVG.
Mind the material
Glossy or reflective surfaces can bounce light into the scanner and defeat a read. Curved bottles, crinkled foil and dark plastics are all challenging. Test on the actual material.
Avoid fold and seam lines
Don't place a code where a brochure folds or a box seam runs — a break across the pattern can make it unscannable.
Print small with care
If space is tight, reduce the data and error-correction level rather than shrinking a dense code past readability. Keep to a sensible minimum size.
Test on real devices
Always scan the final printed piece with multiple phones and apps before a full run. A code that works on screen can still fail in print.
Size and resolution: the numbers
Two figures decide whether a printed code works: how large the symbol is, and how large one module is. The second matters more.
| Where it is used | Typical scan distance | Suggested size | Minimum |
|---|---|---|---|
| Business card | 15–20 cm | 20–25 mm | 18 mm |
| Product label, flyer | 20–30 cm | 25–30 mm | 20 mm |
| Table tent, menu | 30–50 cm | 35–50 mm | 25 mm |
| A4 poster | 0.5–1 m | 60–100 mm | 50 mm |
| Shop window, wall | 1–3 m | 150–300 mm | 100 mm |
| Vehicle livery, billboard | 5 m+ | 500 mm+ | Test on site |
These follow the ten-times rule of thumb — a code is read from roughly ten times its width — with a margin added, because the published distance is the best case and a real person scans at an angle in poor light. The size calculator works it out from your actual module count.
Resolution, and why vector wins
| Output | Resolution | Format |
|---|---|---|
| Commercial offset / digital print | 300 dpi minimum | SVG or PDF |
| Office laser | 300–600 dpi | SVG, or PNG at final size |
| Thermal label printer | 203 or 300 dpi | PNG at exact pixel size |
| Large format / banner | 150 dpi at final size | SVG |
| Screen | Device pixels | SVG or PNG at 2× |
Download SVG whenever the destination accepts it. It is a real vector, so there is no resolution to get wrong and no resampling to blur the module edges. The one case for PNG is a thermal printer, where generating at the exact pixel dimensions avoids the driver scaling and rounding the pattern for you.
Never scale a small PNG up. Enlarging a 200-pixel code to 100 mm produces soft edges that a decoder reads as ambiguous modules.
Ink, paper and the physical world
- Dot gain. Ink spreads on absorbent stock, thickening dark modules and narrowing the gaps. On uncoated or recycled paper, err larger.
- Matte over gloss. Gloss and laminate reflect the light a scanner needs back at the camera. If the surface must be glossy, angle the code away from overhead lighting or use a matte varnish patch.
- Never place a code across a fold or a seam. The distortion breaks the grid.
- Avoid photographic and gradient backgrounds. Put the code on a solid light panel.
- Keep the quiet zone. Four modules of clear space on all sides, and no border drawn tight against it.
- Watch curvature. On a bottle or a tube, keep the code to the flat face; a code wrapped round a cylinder distorts out of readability quickly.
- Print dark on light. Inverted codes are read by many decoders but not all, and the failure is silent until somebody complains.
Pre-print checklist
Work through this before a production run. It takes ten minutes and it is the difference between a reprint and a working code.
- Verify in the generator — re-decode and confirm the content matches exactly.
- Print one page at final size on the final stock, from the final press if possible.
- Set print scale to 100%. Not "fit to page", which typically shrinks output by 4–6%.
- Measure the printed symbol with a ruler. It should match your specified size within a millimetre.
- Scan with at least two phones, one of them a few years old.
- Scan at the real distance, in the real lighting — not at your desk.
- Scan at an angle of about 30°, which is how people actually hold a phone.
- Photocopy the test print and scan the copy. Surviving that means there is margin.
- Check the destination URL loads, on mobile data rather than office Wi-Fi.
- Keep the SVG. When someone asks for the code again in eighteen months, you will want the vector rather than a screenshot.
Step 9 catches the failure nobody thinks about: the code is perfect and the page it points at is broken, blocked or desktop-only. A QR code cannot be fixed after printing — the page it points at can, so make sure that page is one you control.
Written and maintained by the QRBarcodeTools Editorial Team · Last reviewed 2026-08-12 · How we write and check these guides