Practical Guides

Printing QR Codes: Size, Contrast and Materials

A QR code that scans on screen can fail in print. How to size, color and place printed codes so they always work.

Printing QR codes well comes down to four things: size, contrast, quiet zone, and material. Get those right and your code scans on the first try, from the right distance, on any phone. Get them wrong and even a perfect code fails on paper. 🐾

A QR code that scans flawlessly on your screen can still fail badly in print — too small, too pale, too crowded, or wrapped around a curved bottle under a glaring light. This guide covers how to take a code from screen to physical media so it works reliably, and how to prove it before a big print run.

How big should a printed QR code be?

Size is driven by how far away people will scan from. A handy rule of thumb:

Minimum width ≈ scan distance ÷ 10

So a code scanned from 30 cm across a table wants to be at least 3 cm wide; a poster read from 3 metres wants at least 30 cm. This is a floor, not a target — bigger is almost always safer, and dense codes (lots of encoded data) need extra size to stay readable.

Scan distanceMinimum code widthTypical use
20 cm~2 cmBusiness card
30 cm~3 cmMenu, flyer
1 m~10 cmPoster, sign
3 m~30 cmWall, banner
10 m~1 mBillboard

One more factor: the denser your code, the larger it must be. A lean payload keeps the code low-version with bigger modules that survive small print. Our data capacity guide explains why short links and trimmed contact details print better.

Why does contrast matter so much?

Scanners find a QR code by the sharp difference between dark and light modules. High contrast makes that easy; low contrast makes it a guessing game.

  • Dark code on a light background is the reliable default — classic black on white is ideal.
  • Don't invert to light-on-dark unless you've tested it; many scanners expect dark modules on light.
  • Avoid low-contrast brand colours. A pale grey code on a cream card looks tasteful and scans terribly.
  • Mind the ink. Some coloured inks reflect infrared oddly; if you must use colour, keep the code dark and the background pale, and test.
If you can barely tell the modules apart at arm's length, neither can a phone camera.

What is the quiet zone and why keep it?

The quiet zone is the blank margin around a QR code. Scanners use it to locate where the code begins and ends, so crowding it breaks detection. The standard guidance is a clear margin of roughly four modules (four "squares") wide on all sides.

In practice that means:

  • Don't butt the code against text, borders, images, or the edge of the page.
  • Don't wrap it in a tight decorative frame that eats the margin.
  • Keep the surrounding area the same light colour as the code's background.

This one is responsible for a huge share of "why won't it scan?" failures. Our dedicated quiet zone guide goes deeper.

Should I export as vector or raster?

For print, prefer vector — an SVG or PDF — because it scales to any size with perfectly crisp edges. Vector is the safe choice when you don't know the final print size or when a printer will resize it.

If you must use a raster image (PNG), export at high resolution — aim for 300 DPI at the final printed size. The classic failure is grabbing a small on-screen PNG and blowing it up, which produces blurry, fuzzy-edged modules that scanners struggle with.

  • Best: SVG or vector PDF, resized in your layout tool.
  • Acceptable: high-DPI PNG at the exact final size.
  • Avoid: small screenshots, upscaled low-res images, or JPEGs (compression blurs the edges).

Does error correction help with print?

Yes, a little. QR codes include error correction, which lets them still scan when part of the pattern is damaged, smudged, or obscured. Higher correction levels tolerate more damage but make the code denser. For print exposed to wear — outdoor signage, stickers, packaging — a higher error correction level adds resilience against scuffs and dirt. The trade-off is a busier code that needs slightly more size. Our error correction guide explains the levels and when to raise them.

What about materials and surfaces?

The physical surface can make or break a scan:

  • Avoid glare. Glossy laminate and shiny foil reflect overhead lights straight into the camera. Matte finishes scan far more reliably.
  • Keep it flat. Curved surfaces — bottles, cups, cans, tubes — distort the pattern. If you must print on a curve, make the code larger and orient it so the curve is gentle across the code.
  • Mind the substrate. Fabric, mesh, and rough textures blur module edges; smooth stock holds detail.
  • Think about durability. Outdoor codes need UV-stable ink and lamination so they don't fade; a faded code loses contrast and stops scanning.
  • Watch for see-through. On thin paper, dark content on the reverse can show through and confuse the scanner.

How do I test before a big print run?

Never order a thousand of anything from an untested proof. A quick checklist:

  1. Print a real proof at the final size on the actual material.
  2. Scan from the real distance, not with your nose against it.
  3. Test multiple phones — old and new, iOS and Android, different cameras.
  4. Test the real lighting — dim restaurant, bright shop, outdoor glare.
  5. Check odd angles and a slight tilt, since guests won't scan perfectly square-on.
  6. Confirm the destination is correct and loads quickly.

Only when the proof scans reliably across all of that should you commit to the full run. Ten minutes of testing saves a reprint.

Why static codes are best for print

Anything printed is, by definition, fixed — so the code behind it should be too. A static code bakes the real data into the pattern, so it never expires, needs no server, and can't be switched off by a vendor after you've printed a thousand copies. Dynamic codes that route through someone else's redirect are exactly the wrong fit for permanent, physical media. Our comparison of static vs dynamic codes and the case for static QR codes make the argument in full.

When you're ready to print, you can create a free QR code with QR Puppy and export a crisp SVG or high-resolution image. It handles URLs, Wi-Fi, contact cards, events and more, includes a design studio, and generates everything in your browser — no tracking, no expiry, ready for the printer. For specific projects, see our guides on restaurant menus and events and weddings.

Frequently asked questions

How do I choose the right print size?

Use the rule of thumb: minimum width ≈ scan distance ÷ 10. A code read from 30 cm needs about 3 cm; from a metre, about 10 cm. Treat that as a floor and go bigger, especially for dense codes carrying lots of data.

Can I print a QR code in colour?

Yes, if you keep strong contrast — a dark code on a light background. Avoid pale, low-contrast combinations and inverted light-on-dark unless you've tested them. Some inks reflect oddly, so always scan a printed proof before a full run.

Should I use SVG or PNG for printing?

SVG (or vector PDF) is best because it scales to any size with crisp edges. If you use PNG, export at high resolution — around 300 DPI at the final printed size. Never blow up a small screenshot; it prints blurry and fails to scan.

Why won't my printed code scan when the screen version does?

Common culprits are too-small size, weak contrast, a crowded quiet zone, glossy glare, a curved surface, or a low-resolution export. Check each of those, reprint a proof, and test on several phones at the real scanning distance.

Do I need to test on more than one phone?

Yes. Cameras and scanning software vary across devices and operating systems. Test a printed proof on old and new phones, on both iOS and Android, in the real lighting, before ordering a large batch.

Make a QR code the honest way 🐾

Free forever, no tracking, no expiry — generated right in your browser.

🎨 Create a QR code →