How to Print QR Codes — Size, Resolution & Material Guide
Printing a QR code seems simple — generate one, drop it into your design file, and send it to the printer. But this casual approach is exactly why millions of printed QR codes fail to scan every year. The difference between a QR code that scans instantly from across a room and one that frustrates users until they give up comes down to three technical factors: size, resolution, and material. This comprehensive guide covers everything you need to know about printing QR codes correctly, from minimum size calculations and DPI settings to choosing the right substrate material and testing procedures that prevent costly reprinting. Whether you are printing QR codes on business cards, product packaging, banners, storefront signage, or promotional materials, these guidelines will ensure every scan succeeds.
Understanding QR code size requirements for print
The most common reason printed QR codes fail to scan is that they are too small for the intended scanning distance. QR code size is not arbitrary — it must be calculated based on two variables: the amount of data encoded in the QR code and the distance from which users will scan it. These two factors determine the minimum size that ensures reliable scanning across all smartphones, including older models with lower-resolution cameras.
A QR code is composed of a grid of dark and light modules (the individual squares that make up the pattern). The more data you encode, the more modules the QR code needs, which means each module becomes smaller at any given overall QR code size. A QR code encoding a short URL like qrwink.com/m/abc123 might have a 25x25 module grid, while one encoding a full vCard with name, phone, email, company, and address might need a 73x73 grid. At the same overall printed size, the individual modules in the high-density code are nearly three times smaller than those in the low-density code, making them much harder for cameras to resolve.
The fundamental rule for QR code print size is the 10:1 ratio — the QR code should be at least one-tenth the size of the expected scanning distance. If you expect people to scan your QR code from 30 centimeters away (typical for a business card or product label held in hand), the QR code should be at least 3 centimeters wide. If the expected scanning distance is 1 meter (a poster on a wall), the QR code needs to be at least 10 centimeters. For a billboard meant to be scanned from 3 meters, you need at least 30 centimeters. This ratio accounts for average smartphone camera resolution and ensures reliable focus and decoding.
For specific use cases, here are recommended minimum sizes: business cards require at least 2 cm x 2 cm (0.8 x 0.8 inches), and this only works with short URLs — for vCards with full contact data, increase to 2.5 cm or more. Flyers and brochures should have QR codes at least 2.5 cm x 2.5 cm. Product labels vary by label size but should never go below 1.5 cm x 1.5 cm, and even then only with minimal data and high contrast. Table tents and restaurant menus need at least 3 cm x 3 cm since users scan from a slightly greater distance. Posters require 8 to 15 cm depending on placement height and expected viewing distance. Banners and large-format prints need 15 cm or larger. Billboards should have QR codes of 30 cm or larger, though the practical value of QR codes on billboards is debatable since drivers cannot safely scan while driving.
Always include a quiet zone around your QR code — a margin of blank space equal to at least four modules wide on all sides. This quiet zone is not optional; it is part of the QR code specification and required for reliable scanning. Without it, the scanner cannot distinguish where the QR code ends and surrounding design elements begin. Many scanning failures attributed to QR code size are actually caused by insufficient quiet zone, where adjacent text, graphics, or borders encroach on the code. When calculating your QR code size, include the quiet zone in the total dimensions. A 3 cm QR code with a proper quiet zone occupies approximately 3.5 cm of total space.
Resolution and DPI settings for print-quality QR codes
Resolution determines how sharply the modules in your QR code are rendered when printed. A QR code that looks perfect on screen can print as a blurry mess if exported at insufficient resolution, because screen resolution (72 to 96 PPI) is far lower than print resolution (300 DPI standard). Every module boundary must be crisp and clean — soft or blurred edges between dark and light modules confuse QR code scanners and cause read failures, especially in challenging lighting conditions.
For all standard print materials — business cards, flyers, brochures, product labels, packaging, stickers, and catalogs — export your QR code at a minimum of 300 DPI at the final printed size. This means if your QR code will print at 3 cm x 3 cm, the image file should be at least 354 x 354 pixels (3 cm at 300 DPI). For best results, export at 600 DPI or higher, especially for small QR codes where every pixel of clarity matters. At 600 DPI, a 3 cm QR code is 709 x 709 pixels, providing noticeably sharper module edges.
Large-format printing has different resolution requirements because the viewing and scanning distance is greater. For posters, banners, trade show displays, and wall graphics, 150 DPI at the final printed size is usually sufficient. The reduced DPI is acceptable because the QR code is physically larger and scanned from a greater distance, so the relative sharpness appears the same to the camera. However, if you are printing a poster with a relatively small QR code (under 10 cm) at the bottom, that QR code still needs 300 DPI even though the rest of the poster may be printed at 150 DPI. Always calculate resolution based on the QR code's printed dimensions, not the overall document dimensions.
The ideal file format for printing QR codes is SVG (Scalable Vector Graphics). SVG files describe the QR code as mathematical shapes rather than pixels, which means they can be scaled to any size — from a 1 cm label to a 1 meter banner — without any quality loss. Module edges remain perfectly sharp at every size. Most professional design software (Adobe Illustrator, InDesign, Figma, Canva Pro) supports SVG import, and QRWink offers SVG export for exactly this purpose. If your workflow requires raster formats, use PNG at 300 DPI or higher. Never use JPEG for QR codes — JPEG compression introduces artifacts at sharp edges, which is exactly where QR code module boundaries are. These compression artifacts blur the boundary between dark and light modules and can cause scanning failures, particularly for smaller QR codes.
When placing your QR code in a design layout, ensure the design software is not resampling or compressing the image. In Adobe InDesign, check that the effective resolution (shown in the Links panel) is at least 300 PPI at the placed size. In Canva, export at the highest quality setting. If you scale a QR code up in your layout software beyond its original resolution, the effective DPI decreases proportionally. A 300 DPI QR code scaled up to twice its original size becomes 150 DPI — potentially insufficient for small QR codes on print materials. When in doubt, re-export the QR code from QRWink at the exact size you need rather than scaling in your design software.
Choosing the right material: paper, vinyl, metal, and more
The material you print your QR code on affects scannability in ways that many people do not anticipate. Surface texture, reflectivity, durability, and color interaction all influence how well a camera can read the QR code. Choosing the right material for your specific use case is just as important as getting the size and resolution right.
Standard paper (uncoated) is the most common printing substrate and works well for QR codes in most indoor applications. Business cards, flyers, brochures, and office documents on uncoated paper provide a matte surface that does not create glare, which is favorable for scanning. The downside is that uncoated paper absorbs ink, which can cause slight bleeding at module edges and reduce sharpness. For QR codes on uncoated paper, increase your error correction level to M (medium, 15 percent recovery) or Q (quartile, 25 percent recovery) to compensate for any minor edge softening. Uncoated paper is also vulnerable to moisture, so QR codes on outdoor flyers or materials exposed to humidity may degrade quickly.
Coated paper (glossy or semi-gloss) offers sharper print quality because the coating prevents ink absorption and bleeding. Module edges are crisper, and the contrast between dark and light areas is typically higher than on uncoated paper. However, glossy surfaces create reflections and glare under certain lighting conditions, which can interfere with scanning. A QR code on a glossy magazine page under bright overhead lighting may reflect a white hotspot directly into the camera, making part of the code unreadable. Semi-gloss (satin) coatings are the ideal compromise for printed QR codes — sharper than uncoated, less reflective than full gloss. If you must use high-gloss paper, consider applying a matte spot varnish over the QR code area specifically to reduce glare.
Vinyl and synthetic materials are essential for outdoor and durable applications — weatherproof stickers, vehicle wraps, outdoor signage, and equipment labels. Vinyl resists water, UV exposure, and abrasion, making it ideal for QR codes that need to last months or years in harsh conditions. When printing QR codes on vinyl, use UV-resistant inks to prevent fading over time — a faded QR code with reduced contrast will eventually become unscannable. White vinyl with dark printed modules provides excellent contrast. Clear vinyl with printed modules can work but requires careful background consideration since the surface behind the clear vinyl becomes the effective background. Apply a matte laminate over vinyl QR codes used outdoors to protect against UV degradation and reduce glare.
Metal surfaces — aluminum, stainless steel, and anodized metals — are used for permanent QR codes on equipment labels, asset tags, industrial signage, and premium promotional materials. Metal QR codes are extremely durable but present unique scanning challenges. Direct laser engraving on metal often produces low contrast (silver on slightly-different-silver) that many cameras struggle to read. The best approach for metal QR codes is either anodized aluminum with the QR code etched through the anodic layer to expose contrasting base metal, or a printed label with UV-resistant adhesive applied to the metal surface. If using direct engraving, fill the engraved modules with dark paint or ink to maximize contrast. Always test metal QR codes under the specific lighting conditions where they will be deployed, as metal reflectivity varies dramatically with light angle.
Fabric and textile printing is increasingly used for QR codes on clothing tags, tote bags, event lanyards, and trade show materials. Screen printing and direct-to-garment (DTG) printing can produce scannable QR codes, but the textile weave introduces texture that can distort module edges. Use larger QR codes on fabric (minimum 4 cm x 4 cm) and set error correction to H (high, 30 percent recovery) to compensate for texture distortion. Dark thread or ink on white or very light fabric produces the best results. Avoid printing QR codes on stretchy materials where the distortion from wearing or handling could render the code unreadable. Woven labels with QR codes are more reliable than printed-on-fabric codes because the weave is tighter and more uniform.
Color considerations and contrast requirements
Color is where QR code printing most often goes wrong. Designers understandably want QR codes to match brand aesthetics, which often means replacing the standard black-and-white scheme with brand colors. This can absolutely work — QR codes do not need to be black and white — but only if the fundamental contrast requirements are maintained. When they are not, the result is a beautiful QR code that does not scan, which defeats its entire purpose.
QR code scanners work by detecting the difference in reflectance between dark modules and light modules. The scanner needs to clearly distinguish which modules are dark and which are light. The ISO 18004 standard for QR codes does not specify that modules must be black and white, but it requires sufficient contrast between the two. The commonly cited minimum contrast ratio is 4:1, but for real-world reliability across all devices and conditions, aim for at least 7:1. A dark navy blue on white background achieves this easily. A medium gray on light gray does not.
The safest approach to colored QR codes is dark modules on a light background. Dark blue, dark green, dark red, dark purple, or black modules on a white, cream, or very light pastel background will scan reliably. Reverse the approach — light modules on a dark background — and you enter risky territory. While some modern scanners can read inverted QR codes (light on dark), many cannot, and you exclude a significant portion of users. If brand guidelines require a dark background, keep the QR code modules dark and ensure the QR code has its own light-colored background area (a white rectangle behind the QR code within the overall dark design).
Certain color combinations should be avoided entirely. Red modules on a green background (or vice versa) are problematic for users with red-green color blindness, but more importantly, many camera sensors have difficulty distinguishing these colors in the processing pipeline. Similarly, yellow modules on a white background have extremely low contrast and are virtually unreadable. Orange on red, light blue on white, and any combination where both colors have similar brightness values will fail. When in doubt, convert your color scheme to grayscale — if the modules are still clearly distinguishable in grayscale, the contrast is sufficient for scanning.
Gradient colors within the QR code are possible but must be handled carefully. A gradient that transitions from dark blue to dark green across the QR code modules will scan fine because both colors maintain strong contrast against a white background. A gradient from dark blue to light yellow will fail at the yellow end where contrast drops below the readable threshold. If using gradients, ensure that the lightest point of the gradient on modules still maintains at least 4:1 contrast against the background, and the darkest point of the gradient on the background still maintains 4:1 contrast against the modules. This limits gradients to a narrower range than designers typically prefer, so test thoroughly at the actual print size before committing.
Background images or patterns behind a QR code are strongly discouraged for print. While some digital QR codes with transparent backgrounds can work on screen, the combination of print resolution, material texture, and unpredictable lighting makes pattern backgrounds unreliable in print. If your design calls for a QR code over a photographic or patterned background, add a solid white or light rectangle behind the QR code with padding. This breaks the visual integration slightly but guarantees scannability. The quiet zone around the QR code should always be a solid, uniform color — never part of a pattern or image.
Testing before mass printing: a complete checklist
Testing is the most critical and most frequently skipped step in QR code printing. The cost of reprinting thousands of flyers, product labels, or packaging because the QR code does not scan dwarfs the cost of printing a few test samples first. A thorough testing process takes less than an hour and can save you thousands of dollars and weeks of delay. Make testing a non-negotiable step in every QR code print project.
Start by printing a proof at the exact final specifications. The test print must use the same paper or material, the same printer or print process, the same ink type, and the same dimensions as the final production run. A QR code that scans perfectly on your office laser printer may fail when printed on the commercial offset press because of dot gain (ink spread), different ink chemistry, or different paper coating. Request a production-matched proof from your print vendor — most professional print shops offer this service. For in-house printing, run a test batch on the actual production printer with the actual production materials.
Test with at least three different smartphones covering a range of capabilities. Use a recent iPhone (iPhone 14 or newer), a recent Android device (Samsung Galaxy, Google Pixel, or equivalent), and an older or budget smartphone to ensure broad compatibility. The native camera app on each device should be used for scanning — do not test exclusively with a dedicated QR scanner app, as most real-world users will use their camera app. Each test device should successfully scan the QR code at least three times from the expected scanning distance.
Vary your testing conditions to match real-world usage. If the QR code will be on an indoor table tent, test under typical restaurant lighting — which is often dim. If it will be on outdoor signage, test in direct sunlight, shade, and cloudy conditions. Test at the minimum expected scanning distance, the maximum distance, and at moderate angles (30 to 45 degrees off center, not just perfectly perpendicular). QR codes that only scan when held perfectly centered and parallel at close range will frustrate real users who scan at various angles and distances.
Verify that the encoded data is correct after scanning. This seems obvious, but it is easy to generate a QR code with a test URL during design and forget to update it with the production URL before sending to print. After each test scan, verify the URL, phone number, WiFi credentials, or other encoded data is exactly correct. For dynamic QR codes, verify the redirect is working and pointing to the correct final destination. For static QR codes with long data like vCards, verify that every field (name, phone, email, company, title, address) is correct and properly formatted — a single character error in a vCard can corrupt the entire contact import.
Document your test results and retain a sample from the production run. Create a simple checklist showing which devices were tested, at what distances, under what conditions, and the pass or fail result for each combination. Store this with the project file. When the production run arrives, pull samples from multiple points in the run (beginning, middle, end) and test each one — print quality can vary within a single production run due to ink levels, press calibration drift, or material variations. If any sample fails, stop and investigate before distributing the full run.
Pro Tips
Frequently asked questions
Create a Print-Ready QR Code
Join businesses worldwide using QRWink to connect with their audience.
Start for free