Which format should you use?
SVG or PDF for print. PNG for screens. Never JPEG. That covers almost every case, and the rest of this page is why.
This is a spoke off the print guide, which covers size, quiet zone and the other variables that decide whether a printed code scans.
Vector vs raster, for a grid of squares
A QR code is an unusually good fit for vector. It is a grid of perfectly square, perfectly flat shapes with hard edges — which is exactly what vector formats describe natively and exactly what raster formats describe badly.
A vector file (SVG, PDF) stores the code as geometry: these squares, at these coordinates, in this colour. The printer’s RIP renders them at whatever resolution the press runs at. There is no resolution baked in, so there is no resolution to get wrong — the same file is correct on a business card and on a billboard.
A raster file (PNG, JPG) stores a fixed grid of pixels. That is fine when the display size is known, and a problem the moment someone scales it. Enlarge a raster code and the module edges soften, and soft edges are precisely what a scanner struggles with: it has to decide where dark becomes light, and you have blurred the boundary.
The four formats compared
| Format | Type | Use it for | Avoid it for |
|---|---|---|---|
| SVG | Vector | Print; placing into design files; sharp web rendering | Sending to people without design tools |
| Vector | Sending straight to a printer; defined page dimensions | Embedding in a web page | |
| PNG | Raster, lossless | Screens, slides, email, social, app UI | Print at any size where quality matters |
| JPG | Raster, lossy | Almost nothing, for a QR code | Print, and any small on-screen use |
Why JPEG is the one to avoid
JPEG compression is built for photographs. It saves space by discarding detail the eye does not notice in soft, gradual tonal transitions — and it is genuinely very good at that.
A QR code is the opposite kind of image: nothing but hard, high-contrast edges. JPEG handles those badly, producing ringing artefacts — faint halos and speckle — immediately around every transition. On a QR code, that means artefacts land exactly on the module boundaries the scanner is trying to read.
If you need a raster file, use PNG. There is no case where JPEG is the right choice for a QR code: it is not meaningfully smaller at the quality levels a code needs, and it is worse at every size.
What your printer actually wants
Ask — but the answer is usually PDF, because a PDF carries page dimensions and colour information along with the artwork, which is what a prepress workflow is built around.
Practical notes:
- Send SVG when the code is going into a larger design file in Illustrator, InDesign, Figma or Affinity. It places as editable vector and scales with the layout.
- Send PDF when the code is the deliverable, or when the printer asked for print-ready files.
- If you must send PNG, export at 300 DPI of the final printed size — about 590 pixels for a 5 cm code, about 2,360 for 20 cm. Tell the printer the intended size, so nobody scales it up on your behalf.
- Check the quiet zone survived. Whichever format you send, confirm the four-module clear border is still there in the placed layout. It is the most common thing to lose between export and press.
On screens, PNG at twice the display size covers high-density displays. SVG works on the web too and stays sharp at any zoom — the only reason to prefer PNG there is a tool that will not accept vector.
Next: how small the code can safely go, which is the other half of getting a printed code right.