← All posts

High Resolution QR Code for Print: A Straight Guide That Won’t Waste Your Paper

Business cards, banners, product packaging, A4 flyers — print demands a QR code that actually scans after it leaves the screen. Here is exactly what resolution, size, format, and margin you need.

Most of the QR code problems we see on printed material come from one of three mistakes: the image is saved as a 72 DPI JPEG, the code is printed smaller than the camera can resolve, or the file has been compressed to the point where the dots smear into each other.

Any one of those kills the scan rate. All three at once is why printers sometimes refuse to run the job.

You do not need a design degree to get this right. You need five numbers and five minutes. Here is the short version up front, then the long version with the reasoning.

The Short Version — Print QR Code Checklist

  • Format: SVG first, 300 DPI PNG as backup. Never JPEG.
  • Minimum printed size: 2 cm × 2 cm (0.8 inch × 0.8 inch) for close-scan items like business cards. 3 cm × 3 cm safe default. Larger for distance scans.
  • Quiet zone (margin): at least 4 modules of empty space on every side — roughly 10% of the QR code width.
  • Color contrast: dark code on light background. Contrast ratio 4:1 minimum. No photo backgrounds under the code.
  • Error correction: Standard (M) for clean prints, Dense (Q) if you have a logo or expect ink bleed.

That is the whole checklist. The rest of this post explains why each number exists and when you can bend it.

1. SVG, Not JPEG — And Why It Matters

A QR code is a grid of perfectly square cells (called “modules”). The scanner’s job is to tell light modules apart from dark modules. Anything that blurs that boundary — compression artifacts, soft edges, noise — costs you scan reliability.

SVG is vector. It scales infinitely without losing sharpness. Print it at 1 cm or 1 meter — the edges stay crisp because the printer redraws every module from math, not from pixels. Send SVG to your print shop whenever the workflow supports it (AI, Illustrator, InDesign, most pre-press tools do).

PNG at 300 DPI is the strong second choice. 300 DPI means 300 pixels per inch of final print size, which is the threshold where the human eye can no longer resolve individual pixels. A 3 cm printed QR code at 300 DPI is roughly 354 × 354 pixels. Always export at your final size or larger — never scale up a small PNG in InDesign, it turns into mush.

JPEG is the worst choice for a QR code. JPEG compression is designed to soften edges and merge similar colors, which is exactly the wrong thing to do to a black-and-white grid. Even at 95% quality, you get halo artifacts around every module. Never use JPEG for QR codes, even on screen.

SCANilla exports SVG, PNG, and JPEG. Use the first two.

2. Minimum Size — The 10× Rule

The printed size of a QR code has to match how far away people will be when they scan it. The rough rule used by print pros:

QR code side length = scan distance ÷ 10.

If someone scans from 30 cm away (a business card), you need 3 cm. From 2 meters (a poster across the room), you need 20 cm. From a billboard 10 meters away, you need a full meter.

Common printed use cases, tested sizes:

  • Business card: 2.0 cm × 2.0 cm — the minimum that still scans reliably on most phones.
  • A4 flyer / A5 brochure: 3 cm × 3 cm — standard size, scans from arm’s length.
  • Product label / packaging: 2.5 cm × 2.5 cm — shoppers hold the box up close.
  • Table tent / menu: 4 cm × 4 cm — scanned across the width of a table.
  • Standing banner / retractable: 10 cm × 10 cm — scanned from 1 meter.
  • Wall poster / store window: 15 cm × 15 cm.
  • Roadside billboard: 50 cm × 50 cm or bigger.

If you cannot hit the minimum, shorten the underlying URL. Every character in the URL adds modules to the grid, which shrinks the scannable area. A dynamic QR code with a 12-character short URL (like scanilla.com/r/hjqpmhh) always prints cleaner than a 90-character UTM-tagged URL at the same physical size.

3. Quiet Zone — The Most Ignored Rule

Every QR code specification (ISO/IEC 18004) requires a margin of empty space around the code — called the quiet zone. The scanner uses this gap to lock onto the code’s boundaries. Without it, the scanner sees the code bleeding into the surrounding design and fails to parse it.

Minimum quiet zone: 4 modules on every side. If your QR code is 25 modules across, each module is 1 mm on a 2.5 cm print, so you need at least 4 mm of empty space around the code.

A safe rule of thumb: add 10% of the QR code’s width as padding on every side. A 3 cm code gets 3 mm of padding. Simple.

The quiet zone does not have to be white, but it has to be the same plain color as the code’s background. Do not run photo backgrounds, gradients, or text right up to the edge of the code.

4. Color and Contrast — Dark on Light, Always

Scanner libraries are built on the assumption that the code is dark and the background is light. You can absolutely invert that rule for design — and many brands do — but scan reliability drops. Test first, then ship.

Three rules that will not let you down:

  • Keep contrast ratio at 4:1 or higher. Black (#000) on white (#FFF) is 21:1 — the best possible. Dark blue (#1C2434) on white is still above 15:1. Light gray on white is below 2:1 — unscannable.
  • Never invert without testing. A white code on a dark background works on most modern phones but can fail on older Android scanners. If your audience is mixed, stay dark-on-light.
  • Do not put the code over a photo. The dots need a flat background. If you must overlay, put the code inside a solid-color card with padding, and place the card on the photo.

Branded color (dots in your brand color, still on white) is safe. Branded corner squares are safe. Gradient fills across the dots are risky — some scanners read them fine, some fail.

5. Error Correction — The Insurance Policy

Every QR code bakes in error correction data. If part of the code is damaged — ink smudge, dirt, a logo covering the center — the scanner can still reconstruct the message, up to a point.

Four levels (SCANilla calls them by function, not the old L/M/Q/H letters):

  • Simple (L): tolerates ~7% damage. Smallest code. Use for digital-only QR codes on clean backgrounds.
  • Standard (M): tolerates ~15%. The right default for most print jobs.
  • Dense (Q): tolerates ~25%. Use when you are adding a logo in the center, printing on uneven material, or expecting ink bleed.
  • Max (H): tolerates ~30%. Maximum resilience, biggest code. Use for outdoor signage, harsh environments, or large logos.

The trade-off: higher correction means more modules, which means the same printed size fits less data — or the same URL needs a bigger print. For a logo-in-center design, Dense is the sweet spot.

6. Test Before You Commit to Printing 10,000 Copies

This is the step nobody does and everybody regrets. Before the print run:

  1. Print one copy at the exact final size on the exact final paper, from your actual printer (or a sample from the print shop).
  2. Scan it with three different phones. An older Android, an iPhone, and one other. If any of the three fail, size up or increase error correction.
  3. Scan it from the expected distance. A business card from arm’s length, a poster from across the room.
  4. Scan it in low light — a dim restaurant, a cloudy outdoor day. Camera autofocus struggles in low light, which is where marginal codes fail first.

Five minutes of testing saves you a $2,000 reprint. We have watched too many teams skip this step.

Bonus: Dynamic QR Codes Are Print Insurance

One more reason to use a dynamic QR code on anything you print: you can change the destination after the print run.

Static QR codes encode the URL directly into the grid. Once printed, that URL is locked forever. If the menu page moves, the campaign pivots, or the product page URL changes, every printed code becomes dead.

Dynamic codes encode a short redirect URL (scanilla.com/r/abc123). The redirect destination lives in your dashboard and can be updated anytime. The printed code never changes — only where it points to.

For anything that costs more than a few hundred rupees to print, this is cheap insurance.

Get a Print-Ready QR Code in Three Minutes

On SCANilla, every QR code you create exports as SVG (vector, infinite resolution) and PNG (300 DPI ready). The generator enforces a safe quiet zone automatically. You pick your dot style, color, logo, and error correction level — all free, all during our open beta.

Create a free account, design your code, download the SVG, hand it to your print shop, and ship the job. If your print shop needs a 300 DPI PNG instead, that option is right next to SVG in the download menu.

Five numbers. Five minutes. Zero wasted paper.

Need a QR code for this? SCANilla is free for unlimited static codes — no signup.
Open the Generator