How to Print a QR Code
A QR code that scans perfectly on screen can fail on paper. Screens are backlit, sharp and consistent; paper is none of those things. Here is what changes.
Send vector, not pixels
Download the SVG and give that to the printer. It is a set of mathematical shapes, so it stays razor-sharp whether it comes out at 2 cm or 2 metres. A PNG is a fixed grid of pixels: enlarge it and the module edges turn soft, and soft edges are what scanners struggle with.
If your printer insists on a raster file, send a PNG at least four times the final print width in pixels — a 3 cm code wants roughly 1400 px, which is comfortably over 300 dpi.
The quiet zone is not optional
The QR standard requires a blank margin four modules wide on all four sides. Scanners use it to find where the code starts. Designers delete it constantly, because the code looks better tucked into the corner of a layout — and then a third of scans fail and nobody knows why.
Contrast, and which way round
- Dark modules on a light background. Scanners expect this polarity; many will not read an inverted code at all.
- Aim for a strong difference in lightness, not just in hue. Red on orange looks contrasty to a human eye and flat to a camera.
- Avoid printing a code over a photograph or a gradient. If you must, put it in a solid light box.
- Matte beats gloss. Gloss and lamination throw reflections straight back into the camera, especially under a shop's downlights.
Where the paper fights back
Ink spreads slightly as it soaks into stock — printers call it dot gain. On uncoated, absorbent paper the dark modules grow and the light gaps shrink, and a small code can close up entirely. Newsprint, kraft card and unbleached recycled stock are the usual culprits. On those, go a size up and keep the modules generous.
Thermal receipt printers and low-resolution label printers deserve their own test print. They often cannot hold a module below about 0.6 mm.