# What DPI should a QR code be printed at?

> Print QR codes from vector artwork — SVG or PDF — and DPI becomes irrelevant, because the RIP renders exact edges at the device's native resolution. If you must use raster, generate at final size × 300 dpi and never scale it up.

Source: https://useqr.app/docs/print/qr-code-dpi-for-printing · Last reviewed 2026-08-21 · UseQR is free forever, MIT licensed, no signup.

---

## Vector removes the question

An SVG or PDF QR code has no resolution. The printer's RIP renders each module at the output
device's native resolution with mathematically exact boundaries. There is no interpolation,
no anti-aliasing and no rounding.

Send vector to every commercial printer. UseQR exports SVG and PDF generated directly from
the module matrix, not traced from an image.

## If you must use raster

Generate at **final printed size × 300 dpi** and never enlarge:

| Final size | Pixels at 300 dpi | Pixels at 600 dpi |
|---|---|---|
| 2 cm | 236 | 472 |
| 3 cm | 354 | 709 |
| 5 cm | 591 | 1181 |
| 10 cm | 1181 | 2362 |
| 30 cm | 3543 | 7087 |

Turn off smoothing and resampling in the layout tool. Save as PNG, never JPEG — JPEG's
frequency-domain compression produces ringing artefacts at exactly the hard edges a QR code
is made of.

## Dots per module is the number that matters

For low-resolution devices, the meaningful figure is how many printer dots each module gets.
Aim for at least **4**:

| Device | Dot size | Module at 4 dots |
|---|---|---|
| 203 dpi thermal | 0.125 mm | 0.50 mm |
| 300 dpi thermal | 0.085 mm | 0.34 mm |
| 600 dpi laser | 0.042 mm | 0.17 mm |
| 2400 dpi offset | 0.011 mm | 0.04 mm |

Below 4 dots per module, rounding shifts module boundaries and read rates fall sharply.

## Use the printer's native command where it exists

Label printers generate QR codes in firmware — `^BQ` in ZPL, equivalents in EPL, DPL and
TSPL. Firmware places modules on exact dot boundaries. Sending a raster image instead
re-samples the pattern and reintroduces the rounding you are avoiding.

```
^XA
^FO50,50^BQN,2,6^FDMA,https://example.com/p/1042^FS
^XZ
```

## Screen output

For a screen, generate at **2× the CSS pixel size** for high-DPI displays, or use SVG, which
sidesteps it entirely.

## FAQ

### What DPI should I export a QR code at?
If you can export vector, DPI does not apply — use SVG or PDF. For raster, generate at final printed size × 300 dpi and never scale up afterwards.

### Can I scale up a QR code image?
No. Enlarging a raster image interpolates module edges into gradients, which is exactly what causes printed codes to fail while looking fine on screen.

### Should I save QR codes as PNG or JPEG?
PNG, always. JPEG compression creates ringing artefacts at hard edges, and a QR code is nothing but hard edges.

### Why does my label printer produce unreadable codes?
Probably fewer than four printer dots per module. At 203 dpi that means modules must be at least 0.5 mm. Using the printer's native QR command rather than sending an image also helps.

## Try it

- https://useqr.app/size-calculator
- https://useqr.app/url
