QRQR Code Agency
Guides

High-resolution print

Practical guide to DPI, sizes, file formats, and substrates. Read this once and never ship a fuzzy QR.

High-resolution print

A practical guide to the trade-offs between physical size, DPI, file format, and substrate. Read this once before sending QRs to a printer and you will never ship a fuzzy or unscannable print.

The DPI rule of thumb

OutputDPI
Web thumbnail (<img width=200>)72-150
Standard inkjet / laser print300
Offset press, magazine, brochure300-450
Textile (sublimation, DTG)300-600
Vinyl signage, billboard100-200 (viewed from far)
Fine-art giclee print600

Default to 300. It is the print-shop minimum. Bump to 600 only when both the substrate (high-res inkjet, offset) and the budget justify it. 600 DPI requires Pro plan or higher.

Picking size_inches

Match the physical size you will print at. The API multiplies size_inches x dpi to get pixels.

Use casesize_inchesdpiPixels
Email signature, social share1300300 x 300
Business card1600600 x 600
Sticker, table tent3300900 x 900
Flyer, A4 poster QR4-63001200-1800 px
Wall poster (A3 / 11x17)83002400 x 2400
Storefront window12-153003600-4500 px
Billboard, large-format153004500 x 4500

tip: When the printer asks for X DPI at Y inches Plug their numbers straight into the API. They want 600 DPI at 8 in? size_inches: 8, dpi: 600 -> 4800 x 4800 px PNG.

Substrate matters

SubstrateRecommended setup
White paper / cardcolor: black, background: white
Black t-shirt (DTG)color: white, background: transparent
Black t-shirt (vinyl)color: white, background: transparent, format: svg (better cut quality)
Glass storefrontcolor: white, background: transparent, perforated vinyl
Photo backdropcolor: white, background: transparent
Brand-colored cardcolor: black, background: white (do not risk the brand color blocking the scan)

danger: Avoid printing dark on dark A "dark blue on black" QR looks aesthetic but will not scan. Always test with a real phone before mass production.

File format choice

See PNG vs SVG for the deep dive. Quick rule:

  • Need a single fixed-size print? -> PNG
  • Need flexibility (multiple sizes from one file)? -> SVG
  • Old print shop only knows JPG? -> render PNG, convert manually

Mandatory quiet zone

The QR spec mandates a "quiet zone": at least 4 modules of empty space around the matrix on all four sides. The API includes this automatically inside size_inches. You do not need to add padding yourself.

If you crop the rendered image tight to the modules, you break the quiet zone and decoders struggle.

Pre-flight checklist before sending to print

  • Color contrast: modules vs background ≥ 3:1 luminance
  • Quiet zone preserved (no cropping the API output)
  • size_inches matches the physical print size
  • dpi matches what your print shop accepts (default 300)
  • Logo is square and ≤ 24% of the QR diameter
  • Scanned the rendered file with two phones (one iOS, one Android)
  • Paper sample test print: QR scans from 30 cm away
  • Substrate sample print: QR scans from 1 m away (signage)

Field-tested presets

Sticker on dark surface (neon white, transparent)

{
 "size_inches": 3,
 "dpi": 300,
 "color": "white",
 "background": "transparent",
 "pattern": "rounded",
 "logo_neon_alpha": true,
 "format": "png"
}

Business-card vCard (small, dense, monochrome)

{
 "size_inches": 1,
 "dpi": 600,
 "color": "black",
 "background": "white",
 "pattern": "rounded",
 "format": "png"
}

Storefront window (large, vector, transparent)

{
 "size_inches": 15,
 "dpi": 300,
 "color": "white",
 "background": "transparent",
 "pattern": "rounded",
 "format": "svg"
}

Magazine ad (high-fidelity, branded)

{
 "size_inches": 4,
 "dpi": 450,
 "color": "#1a0d3a",
 "background": "white",
 "pattern": "rounded",
 "logo_url": "https://cdn.x.com/brand-mark.png",
 "format": "png"
}

Branded gradient with frame

{
 "size_inches": 6,
 "dpi": 300,
 "background": "white",
 "gradient_from": "#6c48e8",
 "gradient_to": "#1a0d3a",
 "eye_color": "#1a0d3a",
 "frame_style": "scan-me-bottom",
 "frame_color": "#6c48e8",
 "frame_label": "Scan to view menu",
 "format": "png"
}

What if the print is fuzzy

SymptomCauseFix
Soft, jagged edgesPrint resolution > render DPIRender at the printer's DPI
Modules blur into each otherToo small physical size for contentIncrease size_inches or shorten data
Scanner reads it sometimesMarginal contrastBoost contrast (black-on-white is safest)
Phone camera fails on shiny paperGlare from glossy laminationUse matte / soft-touch finish

See also

On this page