Skip to content
Fundamentals

Why Your QR Code Works In Print But Not On Screen and How to Fix It

Codexengr, QR Systems Engineer
Published 2027-07-23 (Updated 2026-10-05)
6 min read
Peer Reviewed & Fact Checked

What you are seeing

The printed code scans fine, yet the same code shown on a monitor, a projector, or a phone screen fails. Screens introduce their own faults: low display resolution, screen glare, moire interference between the module grid and the pixel grid, brightness set too low, and colour profiles that weaken contrast. A code that was designed for print may also be shown too small on screen, or scaled by a browser in a way that blurs the modules. The fix is to treat the screen display as its own medium with its own proof, not as a smaller version of the print.

Likely causes

1. Browser or app scaling blurs the modules — A code image stretched or shrunk by a page layout can land on fractional pixels, which blurs the module edges. Test: view the code at its native size; if it scans at native size but not when scaled, scaling is the cause. 2. Moire interference on the display — The regular module grid can clash with the screen pixel grid and create shimmering bands that confuse the camera. Test: zoom the display slightly or move the scanning phone; if the pattern shifts and scanning improves, moire is the cause. 3. Low brightness or glare on the screen — A dim screen or a reflection across the display washes out the modules. Test: raise the brightness and shade the screen; if scanning improves, brightness or glare is the cause. 4. Code displayed too small — A code sized for a poster may be shown at thumbnail size in a slide or a web page, making the modules too small to resolve. Test: enlarge the on-screen code; if it starts scanning, size is the cause. 5. Low-contrast colours on the display — A colour pair that prints with strong contrast can look weaker on a particular screen, especially on a projector. Test: switch to plain black on white on the same screen; if that scans, colour is the cause.

Step-by-step fix

1. Show the code at a size that keeps the modules crisp on that screen, and avoid fractional scaling. 2. Raise the screen brightness and remove reflections from the display. 3. Use plain black modules on a white background for screen display. 4. Add a plain white margin around the code on screen so the camera has a clean target. 5. Test on the actual screen your audience will use, at the distance they will stand. 6. Keep a print version and a screen version as separate exports if their sizes differ.

Putting this into practice

In practice, screens punish small codes and low contrast more than paper does, because the camera is reading light emitted by the display rather than light reflected from ink. Give the on-screen code more size and more contrast than you think it needs, and test it on the weakest screen in the room, not the best one. 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

- Assuming a code that passes on paper will automatically pass on a projector or a dim monitor. - 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 in print but not on screen will be used. - Changing the artwork and the placement at the same time, so you cannot tell which change fixed a code that works in print but not on screen.- Skipping the proof test because the change looked small, when small changes cause most repeat failures.

Quick checklist

- The on-screen code is shown large enough to resolve cleanly - Brightness is up and reflections are controlled - The screen version passes on two phones at audience distance - 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)

Frequently Asked Questions

Why does a QR code scan on paper but not on a projector screen?

Projectors add low contrast, glare, moire interference, and a soft image, all of which hurt scanning. The code may also be displayed too small for the viewing distance. Enlarge it, raise the contrast, and test from the back of the room, because that is where the weakest scan happens.

Does screen brightness affect QR scanning?

Yes. A dim screen washes out the difference between dark and light modules, and a very bright screen can add glare. Raise the brightness to a comfortable level, shade the screen from direct light, and retest. Plain black on white is the most forgiving combination on a display.

Should I use a different QR file for screen and print?

Usually, yes. Print needs a high-resolution or vector file, while screen needs a version sized so the modules land cleanly on the display pixels. Keeping two exports avoids the compromise where one file is slightly wrong for both media.

Ready to generate high-precision QR codes?

Test your designs in real-time with our 100% client-side QR studio suite. Zero tracking, instant vector downloads.

Open QR Code Studio