# QR code scans on screen but not in print

> Three causes account for nearly all of these: the raster image was scaled up in the layout, ink spread on the substrate closed the gaps between modules, or the finish is glossy and reflecting. All three are invisible on a monitor.

Source: https://useqr.app/docs/troubleshooting/qr-code-scans-on-screen-not-in-print · Last reviewed 2026-08-21 · UseQR is free forever, MIT licensed, no signup.

---

## 1. You placed a raster image and it got scaled

A 300 × 300 px PNG dropped into a layout and stretched to 8 cm interpolates every module
boundary into a soft gradient. Decoders threshold the image, and soft edges sit near the
threshold — which is precisely where errors happen.

**Fix:** place **SVG** or **PDF**. Vector artwork is rendered at the output device's native
resolution with exact edges. If you must use raster, generate at final size × 300 dpi and
never enlarge.

## 2. Ink spread

On uncoated stock, ink wicks into the fibres. A 0.4 mm module can gain 15–20% in width,
closing the light gaps between modules. On screen the code is perfect; on the page adjacent
dark modules merge.

**Fix:** keep modules at 0.4 mm or larger by shortening the payload; ask the printer about a
light choke; and for very absorbent stock, increase the code size rather than the error
correction.

## 3. Glare

Gloss lamination, spot UV, varnish, foil. Under a downlight the whole code becomes a bright
patch. Error correction is useless here — the decoder is not seeing damaged modules, it is
seeing no modules.

**Fix:** matt finish over the code, always. If the piece must be glossy overall, ask for a
matt spot over the code area.

## 4. The colours changed in CMYK

A screen colour with good luminance contrast can convert to a CMYK build that does not.
Rich blacks, dark brand colours and anything near mid-grey are the usual offenders.

**Fix:** specify **100% K** for the modules and a paper-white background. Do not let the code
inherit a brand colour without checking luminance in the final colour space.

## 5. It crossed a fold or a trim edge

A crease scatters light and puts the two halves at different angles. A trim that clips the
quiet zone removes the margin the scanner needs.

**Fix:** 8 mm clearance from any fold, perforation or trim.

## The check that catches all of these

Print a proof at final size, on the final stock, with the final finish, and scan it from the
distance the audience will use, under lighting like the real environment. Not from the
screen; not at 10 cm under a desk lamp.

## FAQ

### Why does upscaling a QR code break it?
Interpolation turns hard module edges into gradients. The decoder thresholds the image to black or white, and gradients sit near the threshold where small errors flip a module.

### What finish should I use for printed QR codes?
Matt. Gloss lamination, spot UV, varnish and foil all reflect, and the decoder sees a bright patch rather than the pattern. No amount of error correction compensates.

### What colour should the modules be in print?
100% K on a paper-white background unless you have verified the luminance contrast of an alternative in the final colour space. Brand colours often convert badly.

### How much clearance from a fold does a QR code need?
At least 8 mm, plus the four-module quiet zone. A crease through the pattern breaks it optically and geometrically at the same time.

## Try it

- https://useqr.app/validate
- https://useqr.app/size-calculator
