Nine Things to Check Before a QR Code Goes to Print
by KoloQR TeamPrint

A printed QR code fails for one of nine reasons, and all nine are checkable before the file leaves your machine. It needs at least 2 cm of width, about 1 cm for every 10 cm of reading distance, modules no smaller than 0.4 mm on coated stock, a quiet zone of four modules on every side, and a contrast ratio around 7:1. The last check is the one nobody does: print it at final size on the real stock and scan it with two different phones.
Key points
- The floor for a printed QR code is 2 × 2 cm. Below that, module edges land inside the tolerance of ordinary printing and scanning becomes a matter of luck rather than distance.
- Size from the reading distance: roughly 1 cm of code width for every 10 cm between the code and the reader. A poster read from 3 m needs about 30 cm.
- The module is the real limit. Printed modules should be 0.4 mm or larger on coated stock and 0.5 mm or larger on uncoated, whatever the overall width works out to.
- The quiet zone is four modules on all four sides, and it is part of the code rather than a margin the layout may borrow.
- Design to about 7:1 contrast in print, against 4:1 on screen. Print spends contrast on ink spread, paper reflectance and glare, and a ratio that survives a monitor does not automatically survive a press.
- Nine checks and only one of them needs the printer: proof at final size on the real stock. The other eight are done on the file.
The Nine Checks, in Order
Run these in sequence. The order matters because each check constrains the next: the destination sets the symbol version, the version sets the module count, and the module count is what turns a width in centimetres into a module size in millimetres.
- Fix the Destination, and Keep It Short. A static code carries its destination in the pattern, so the URL cannot change after printing. Shorten it before generating: fewer characters means a lower symbol version, which means larger modules at the same printed width.
- Set the Width From the Reading Distance. Divide the scanning distance by ten and never go below 2 cm. Size for the closest realistic reading position rather than the furthest - people walk up to posters, but a code sized for one metre cannot be read from three.
- Check the Module Size in Millimetres. Divide the code's width by the number of modules across it, quiet zone included. Aim for 0.4 mm or more on coated stock and 0.5 mm or more on uncoated. If the number is under the floor, widen the code or shorten the payload.
- Export at the Right Resolution, or as Vector. Vector has no resolution limit and is what a print shop asks for. For raster, 300 DPI at final size, with a whole number of pixels per module so no module edge lands mid-pixel and gets anti-aliased into grey.
- Confirm the Quiet Zone Survives the Layout. Four modules of empty margin on every side. Check it against the artwork rather than the export: a code tucked against a rule, a photograph or the trim edge has lost the margin the exporter gave it.
- Pick the Error Correction Level for the Job. Level M is the sensible default. Go to H only when a logo sits in the centre or the surface will be handled and marked, and accept that H puts more modules in the same width and so needs more of it.
- Measure the Contrast, Do Not Judge It. Dark pattern on a light ground, around 7:1 for print. Light-on-dark works for some decoders and not others, so treat an inverted code as a design decision that has to be tested rather than a neutral choice.
- Decide the Finish Before the Stock Is Ordered. Matte over gloss wherever the code will be read under a light source. Gloss and gloss lamination put a specular highlight across the symbol at exactly the angle people hold a phone.
- Proof at Final Size on the Real Stock. Print one sheet at the size and on the material of the run, and scan it with two different phones in the light the code will actually live in. This is the only check that catches ink spread, and it is the one that gets skipped.
The Numbers in One Table
Everything above as figures, for checking a file against rather than reading through. Each row links to the page that establishes the number.
| Check | The figure | Where it comes from |
|---|---|---|
| Minimum printed width | 2 × 2 cm | Practical floor for ordinary print and phone cameras |
| Width from distance | 1 cm per 10 cm of reading distance | Rule of thumb, not a clause of the standard |
| Module size, coated stock | 0.4 mm or larger | Ink spread on coated paper |
| Module size, uncoated stock | 0.5 mm or larger | Ink spread is worse on absorbent stock |
| Raster resolution | 300 DPI at final size | Standard print resolution |
| Pixels per module | A whole number | Fractional modules anti-alias into grey edges |
| Quiet zone | 4 modules, all four sides | ISO/IEC 18004 |
| Error correction, default | Level M, about 15% recovery | ISO/IEC 18004 |
| Error correction, with a logo | Level H, about 30% recovery | ISO/IEC 18004 |
| Contrast, screen | About 4:1 | Design target, not a decoder threshold |
| Contrast, print | About 7:1 | Margin for ink spread, reflectance and glare |
| Proof | One sheet, final size, real stock, two phones | The only check that catches the press |
Where Each Check Is Explained in Full
This page is the sequence. Each of these owns one step of it, and the tools run the arithmetic rather than describing it.
- Size and module width. The minimum size for print has the charts by medium and the reason the floor sits where it does. The QR print size calculator turns a distance, a payload and a material into a width.
- Resolution and DPI. Resolution and DPI has the formula in both directions, and the DPI calculator runs it.
- File format. SVG vs PNG covers which one a printer wants and why the answer is not always vector.
- Quiet zone. The quiet zone explains what the four modules are for and what happens when a layout eats them.
- Error correction. Error correction levels covers L, M, Q and H, and the width each one costs.
- Capacity. QR code capacity explains why a longer URL produces a denser symbol, which is the step most size problems actually start at.
- Finish. Matte vs gloss printing covers lamination, varnish and the angle glare arrives at.
- Colour. The QR contrast checker gives the ratio for a colour pair before anything is printed.
- The finished file. The QR code validator measures contrast, quiet zone, module size and symbol version from the export itself, and reports the worst side rather than an average.
- What the code says. The QR code scanner reads the destination back out of the exported file, which is the one check a person cannot do by looking.
What the Checklist Does Not Cover
Three things go wrong in printing that no file check will catch, and they are worth knowing about before the run rather than after it.
- Ink spread on the actual press. Every printing process grows dark areas slightly. How much depends on the press, the ink and the stock, and the only way to know is the proof.
- Substrate colour. A code printed on kraft, on a coloured carton or on anything other than white starts from a lower contrast than the file suggests, because the light modules are the substrate.
- Curvature and handling. A code on a bottle, a cup or a folded leaflet is read off a curved or creased surface. Alignment patterns correct for some of that, and beyond a point nothing does.
If a code passed every check here and still fails on paper, that is the useful outcome: the fault entered after the file, which narrows it to the press, the stock or the placement. Why a QR code is not scanning works through those in order.
Make Your QR Code
Free, with no account and no watermark. Choose a shape, add a logo, check the contrast, and export SVG, PDF, EPS or PNG - a static code with no subscription behind it.
Generate QR CodeQuestions? Answered
2 × 2 cm as a floor, and about 1 cm of width for every 10 cm of reading distance beyond that. A menu read at 30 cm needs 3 cm; a poster read at 3 m needs about 30 cm. Whichever of the two numbers is larger is the one to use.
300 DPI at the size it will be placed, with a whole number of pixels per module. Vector formats have no resolution at all and are the safer answer where the printer accepts them. A high DPI figure means nothing on its own - DPI is a ratio between pixel count and placed size, not a property the file carries.
Four modules on every side, which is what ISO/IEC 18004 specifies. That is measured in modules, not millimetres, so the margin grows with the code. It is part of the symbol rather than layout padding, and a design that crops it has changed the code.
Level M for most printed work, which recovers about 15% of a damaged symbol. Use H, at about 30%, when a logo covers the centre or the surface will be handled, scuffed or exposed to weather. Higher levels put more modules in the same width, so H needs a physically larger code.
Yes, within limits. Keep the pattern dark and the background near white, and measure the pair rather than judging it - around 7:1 for print. Mid-tone brand colours that look strong on screen frequently land between 2:1 and 4:1, which is where codes scan in the studio and fail on the shelf.
Matte, wherever the code will be read under a light source. A gloss finish or gloss lamination puts a specular highlight across part of the symbol at roughly the angle a person holds a phone, and a highlight over a finder pattern stops detection before decoding starts.
Because a screen gives perfect contrast, even light, hard edges and usually a larger code than the printed one. Print spends all four on ink spread, paper reflectance, glare and distance. A code that scans on a monitor has passed an easier test than the one it will face.
For any run large enough to be expensive, yes. Ink spread is a property of the press and the stock, and it is the one variable no file check can measure. One sheet at final size on the real material, scanned with two different phones, costs minutes and is the only test that covers it.
2 cm is the working floor, and a card is read at arm's length so distance does not push it higher. What does push it higher is the payload: a long URL raises the symbol version, which puts more modules in the same 2 cm and takes each one below the 0.4 mm module minimum.
Keep Exploring
Pages that pick up where this one leaves off - the same setting, the same kind of code, or the next thing worth deciding.
Why a QR Code Is Not Scanning, and How to Tell Which Fault You Have
The three ways a QR code fails - never detected, read badly, or read perfectly into a broken destination - and how the symptom tells you which one you have before you measure anything.
Retail Stores
Product details, stock and review links on shelf labels, shop windows and checkout signs.
Marketing Agencies
Produce campaign codes for client print runs: sized per placement, exported as vector, and pointed at a redirect the client keeps.
Colored QR Codes
Put your palette on a QR code without breaking it: which color goes on the pattern, and which belongs on the frame.
Branded QR Codes
Match QR codes to your brand with a logo, colors, and custom shapes - without sacrificing scannability.
Do QR Codes Expire? The Pattern Never Does
The pattern never expires, and four things behind it do. Which one failed, how to tell them apart, and which of them you can fix without reprinting.
Why KoloQR?
- Create QR codes for websites, menus, Wi-Fi, PDFs, and business cards
- Customize colors, logos, and unique shapes
- Download high-quality PNG and SVG files
- Built for both print and digital

