Guide No sign-up needed

QR Code Printing Guide

Get QR codes off the screen and onto paper, packaging and signage without losing scannability.

On this page
  1. Maximize contrast
  2. Preserve the quiet zone
  3. Use vector SVG
  4. Mind the material
  5. Avoid fold and seam lines
  6. Print small with care
  7. Test on real devices
  8. Size and resolution: the numbers
  9. Resolution, and why vector wins
  10. Ink, paper and the physical world
  11. Pre-print checklist

Maximize contrast

Dark modules on a light background scan best — classic black on white is ideal. Avoid low-contrast color pairs and be cautious with inverted (light-on-dark) codes, which some scanners reject.

Preserve the quiet zone

Leave a clear margin around the code. Don't let text, borders or artwork encroach on it, and watch that trimming or folding doesn't cut into it.

Use vector SVG

Download SVG for print. Vectors stay razor-sharp at any size, whereas a small PNG scaled up becomes blurry and unreliable. Our tools export clean, script-free SVG.

Mind the material

Glossy or reflective surfaces can bounce light into the scanner and defeat a read. Curved bottles, crinkled foil and dark plastics are all challenging. Test on the actual material.

Avoid fold and seam lines

Don't place a code where a brochure folds or a box seam runs — a break across the pattern can make it unscannable.

If space is tight, reduce the data and error-correction level rather than shrinking a dense code past readability. Keep to a sensible minimum size.

Test on real devices

Always scan the final printed piece with multiple phones and apps before a full run. A code that works on screen can still fail in print.

Size and resolution: the numbers

Two figures decide whether a printed code works: how large the symbol is, and how large one module is. The second matters more.

Where it is usedTypical scan distanceSuggested sizeMinimum
Business card15–20 cm20–25 mm18 mm
Product label, flyer20–30 cm25–30 mm20 mm
Table tent, menu30–50 cm35–50 mm25 mm
A4 poster0.5–1 m60–100 mm50 mm
Shop window, wall1–3 m150–300 mm100 mm
Vehicle livery, billboard5 m+500 mm+Test on site

These follow the ten-times rule of thumb — a code is read from roughly ten times its width — with a margin added, because the published distance is the best case and a real person scans at an angle in poor light. The size calculator works it out from your actual module count.

Resolution, and why vector wins

OutputResolutionFormat
Commercial offset / digital print300 dpi minimumSVG or PDF
Office laser300–600 dpiSVG, or PNG at final size
Thermal label printer203 or 300 dpiPNG at exact pixel size
Large format / banner150 dpi at final sizeSVG
ScreenDevice pixelsSVG or PNG at 2×

Download SVG whenever the destination accepts it. It is a real vector, so there is no resolution to get wrong and no resampling to blur the module edges. The one case for PNG is a thermal printer, where generating at the exact pixel dimensions avoids the driver scaling and rounding the pattern for you.

Never scale a small PNG up. Enlarging a 200-pixel code to 100 mm produces soft edges that a decoder reads as ambiguous modules.

Ink, paper and the physical world

  • Dot gain. Ink spreads on absorbent stock, thickening dark modules and narrowing the gaps. On uncoated or recycled paper, err larger.
  • Matte over gloss. Gloss and laminate reflect the light a scanner needs back at the camera. If the surface must be glossy, angle the code away from overhead lighting or use a matte varnish patch.
  • Never place a code across a fold or a seam. The distortion breaks the grid.
  • Avoid photographic and gradient backgrounds. Put the code on a solid light panel.
  • Keep the quiet zone. Four modules of clear space on all sides, and no border drawn tight against it.
  • Watch curvature. On a bottle or a tube, keep the code to the flat face; a code wrapped round a cylinder distorts out of readability quickly.
  • Print dark on light. Inverted codes are read by many decoders but not all, and the failure is silent until somebody complains.

Pre-print checklist

Work through this before a production run. It takes ten minutes and it is the difference between a reprint and a working code.

  1. Verify in the generator — re-decode and confirm the content matches exactly.
  2. Print one page at final size on the final stock, from the final press if possible.
  3. Set print scale to 100%. Not "fit to page", which typically shrinks output by 4–6%.
  4. Measure the printed symbol with a ruler. It should match your specified size within a millimetre.
  5. Scan with at least two phones, one of them a few years old.
  6. Scan at the real distance, in the real lighting — not at your desk.
  7. Scan at an angle of about 30°, which is how people actually hold a phone.
  8. Photocopy the test print and scan the copy. Surviving that means there is margin.
  9. Check the destination URL loads, on mobile data rather than office Wi-Fi.
  10. Keep the SVG. When someone asks for the code again in eighteen months, you will want the vector rather than a screenshot.

Step 9 catches the failure nobody thinks about: the code is perfect and the page it points at is broken, blocked or desktop-only. A QR code cannot be fixed after printing — the page it points at can, so make sure that page is one you control.

Written and maintained by the QRBarcodeTools Editorial Team · Last reviewed 2026-08-12 · How we write and check these guides

Try it with the tool

Read next

Browse all 18 guides →