DPI, Pixels, and Why QR Codes Go Soft in Print
A QR code is a grid of hard-edged squares, which makes it unusually unforgiving of low resolution. A photograph can survive being a little soft; a QR code cannot, because soft edges shift the boundary between dark and light modules and the scanner starts guessing. The most common cause is exporting a small PNG — often 72 DPI screen resolution — and then scaling it up in a layout program. The pixels stretch, the edges blur, and a code that scanned perfectly on screen fails on paper. The fix is to decide the print size and DPI first, then export pixels to match.
What DPI actually means for a QR code
DPI, dots per inch, says how many printer dots cover one inch of paper. A 50 mm code at 300 DPI needs about 591 × 591 pixels. At 72 DPI the same code is only about 142 × 142 pixels, so each module of a version-5 code is covered by roughly four pixels — barely enough to hold a clean edge, and not enough once ink spreads on uncoated stock. Higher DPI is not automatically better either: 600 DPI doubles the file size and rarely improves scanning on ordinary paper, but it is worth it for very small codes, fine substrates, or engraving and embossing where edge precision matters.
The hierarchy of safe exports
Vector SVG is the safest choice for print, because it describes the squares mathematically and renders sharply at any size. If your printer or layout tool needs a raster file, export PNG at the exact pixel dimensions the calculator gives, at 300 DPI or above, and place it at 100% scale — do not resize it in the layout. JPEG is the worst option for QR codes: its compression smears high-contrast edges and adds ringing around every module boundary. If a JPEG is unavoidable, use the highest quality setting and never re-save it repeatedly.
Production checklist
- Confirm the final printed size before exporting, including whether the stated size covers the quiet zone.
- Export SVG for print whenever the workflow allows it; otherwise PNG at 300 DPI or more.
- Keep at least 4 pixels per module at final size, and more for small codes or absorbent paper.
- Turn off any automatic image sharpening, resampling, or compression in the layout tool.
- Print a proof at final size on the real substrate and scan it before the full run.
Resolution is a one-way street: you can always downscale a sharp export, but you can never recover sharpness from a blurry one. Export generously, then let the printer do its job.
