What you are seeing
The code scans perfectly from a monitor or a phone screen, then fails once printed. Printing changes the code in ways the screen hides: ink spreads, colours shift, resolution drops, glossy stock reflects, and small modules blur together. A screen test therefore proves the payload, not the print. The fix is to treat the printed proof as the real test and to design the print for the material and printer you will actually use.
Likely causes
1.
Wrong file type or resolution for print — A small raster image stretched to poster size turns sharp modules into soft blocks. Test: check the exported file size and type; a vector export or a high-resolution raster at the printed size behaves far better.
2.
Ink spread on absorbent stock — Ink soaks into uncoated or recycled stock and thickens the dark modules until the light gaps close up. Test: compare the proof with the digital file under magnification; thickened modules point at ink spread.
3.
Colour shift on the real printer — A colour pair that looks high-contrast on screen can print weakly, especially on a printer low on ink or using a limited palette. Test: print the code in plain black on white; if that scans, colour is the cause.
4.
Glossy stock reflections — Gloss and lamination create hot spots that wash out modules under overhead light. Test: tilt the proof or shade it; if scanning improves, reflections are the cause.
5.
Size shrunk to fit the layout — A code that scanned at full size in the design file may have been scaled down to fit a card or label, making the modules too small to resolve. Test: measure the printed code and compare it with the size you designed.
Step-by-step fix
1. Export a fresh file for print: vector format where possible, or a high-resolution raster sized for the printed dimensions.
2. Print one proof on the exact stock and printer you will use for the run.
3. Compare the proof with the digital file, looking for thickened modules, weak colour, or reflections.
4. Reprint the proof in plain black on white at a slightly larger size and test it in the real lighting.
5. Adjust the print settings or stock, or enlarge the code, until the proof scans reliably on two phones.
6. Only then approve the full run, and spot-check the first copies off the printer.
Putting this into practice
In practice, the screen test and the print test answer different questions, and you need both. The screen test proves the payload is right. The printed proof proves the ink, stock, size, and lighting are right. Never let a passing screen test skip the printed proof. Keep a short note of what you tested, what failed, and what you changed, so the next person starts from evidence rather than guesswork. A fix that is written down survives staff changes and reprints; a fix that lives only in memory gets repeated.
Common mistakes to avoid
- Approving a full print run from a screen test and discovering the failure only after hundreds of copies are printed.
- Reprinting the full run before a single proof passes, which turns one failure into many.
- Testing on one phone in ideal conditions instead of two phones in the real conditions where a code that works on screen but not in print will be used.
- Changing the artwork and the placement at the same time, so you cannot tell which change fixed a code that works on screen but not in print.- Skipping the proof test because the change looked small, when small changes cause most repeat failures.
Quick checklist
- The print file is vector or high-resolution at the printed size
- One proof on the real stock scans on two phones
- The printed modules match the digital file without thickening or glare
- The corrected proof passes on two phones in the real conditions
- The fix is recorded in the job file so the next reprint starts from a proven setup
- Every printed copy is checked against the approved proof
- The proof is retested after any later change to the link, design, or placement
Related tools and guides
- [QR minimum size checker](/qr-minimum-size-checker)
- [QR contrast checker](/qr-contrast-checker)
- [QR print proof checklist](/qr-print-proof-checklist)
- [QR DPI calculator](/qr-dpi-calculator)
- [QR quiet zone calculator](/qr-quiet-zone-calculator)
- [printed QR tester](/printed-qr-tester)
- [QR size calculator](/qr-size-calculator)