QR code file formats for print: SVG, EPS, PDF or PNG

A QR code is close to the easiest artwork a press will ever be handed: black squares, hard edges, one colour. Most of the ways it fails in production are file decisions made weeks earlier, and every one of them looks fine on screen.

Print craft5 min read

Vector or raster decides everything else

A vector file stores instructions: draw a square this size, at this position, in this colour. A raster file stores a fixed grid of pixels. The difference only matters when the size changes, and print jobs change size constantly. The code drawn for a leaflet ends up on a poster; the poster version ends up on a pull-up banner nobody mentioned at the start.

A QR pattern is pure geometry, so vector is its native form. Scaled to any size, the instructions are simply followed at that size and the edges stay hard. A raster file committed to its pixels at export, and everything done to it afterwards is guesswork.

What scaling a PNG actually does

Enlarging a raster image forces the software to invent pixels that were never there, by interpolating between the ones that were. On a photograph that passes unnoticed. On a QR code it turns every hard black-to-white edge into a ramp of greys several pixels wide, and the press reproduces that blur faithfully.

The phone then has to decide, for each region, dark or light. A crisp edge makes that decision trivial. A grey ramp puts the boundary in play, and it lands on the wrong side unpredictably, in a way that varies with light and camera. Error correction absorbs some of this, but it is already paying for ink spread and camera noise, and possibly a logo as well. A soft edge spends budget the print process needed.

If a workflow genuinely requires PNG, the rules are short. Export at final printed size and at least 300 dots per inch, which makes a 30mm code about 350 pixels across. Enlarge nothing, ever; downscaling is safe, upscaling is not. And never let it pass through JPEG on the way, because JPEG compression actively damages the edges a scanner reads.

SVG, EPS or PDF

All three carry the same geometry, so the choice is about who receives the file. PDF is what a commercial printer will ask for and the safest default. EPS is the older interchange format, still the right answer for sign-cutters, engravers and some large-format workflows. SVG is the native format of the web and fine for modern design tools, though some older prepress software handles it badly, so send a printer PDF unless they ask.

One check worth doing on any vector file you are given: zoom in to a corner of the pattern at several thousand percent. If the edges stay perfectly hard, it is real geometry. If they soften, someone has wrapped a bitmap in a vector container, and the file has all the problems of a PNG with none of the honesty.

Rich black, and why the code should be plain K

On screen there is one black. On press there are two. Plain black is the black ink alone, written as 100% K. Rich black layers cyan, magenta and yellow underneath it for a deeper-looking solid, and it is the right choice for large panels and backgrounds.

It is the wrong choice for a QR code. Four inks means four plates, and each plate sits within a registration tolerance of a fraction of a millimetre. On body text you would never notice. On modules well under a millimetre wide, the misregistration puts a coloured fringe on every edge of every square, and the extra ink spreads further on uncoated stock. The code becomes exactly the kind of soft-edged pattern described above, produced by a different route.

The trap is that artwork built in RGB gets converted to CMYK somewhere in the pipeline, and the conversion routinely turns RGB black into a four-ink build without anyone choosing it. The fix is one instruction to whoever does prepress: the code prints in 100% K only. It takes a sentence and it has to be said, because on screen the two blacks are identical.

Bleed and the quiet zone are different margins

Bleed is artwork extended past the trim line so the guillotine never reveals white paper. It is meant to be cut off. The quiet zone, the empty border inside the code’s own footprint, must survive the cut, and the two get confused in layouts where the code sits near an edge.

Trimming is only accurate to about a millimetre, so a code placed with its quiet zone exactly at the trim line loses part of that zone on a bad cut. Keep the whole code, border included, at least 3mm inside the trim, further on cheap digital runs. The print guide covers what the quiet zone does and why removing it produces intermittent failures rather than obvious ones.

A traced vector is not a generated one

Auto-trace tools turn a bitmap into vector shapes by fitting curves around groups of pixels, and designers reach for them when the only surviving copy of a code is a small PNG in an old email. The result is technically vector and geometrically wrong: wobbly edges, corners rounded off, adjacent modules fused into single blobs. It scales beautifully, errors included.

There is no need for it. Decode the old code with any free reader app, take the address it contains, and generate a fresh vector code carrying the same address. A QR code has no original to be loyal to; two codes carrying the same contents do the same job, and the regenerated one has true squares.

What we export, and the check before download

Our exports are true vector SVG, EPS and PDF: the modules are vector rectangles, not a bitmap in a wrapper, and the zoom test above will confirm it. PNG is there too, rendered at print resolution, for the workflows that want it.

Every download is decoded and checked before it is handed over, and a file that will not scan is refused with the reason stated rather than delivered. That habit exists because we once shipped a PDF export that had been broken from the day it was built, and decided the only fix worth having was to stop trusting our own output.

The other half of the artwork question is size, and that one has a table: how big a printed code needs to be, by scanning distance.

We make QR codes you can re-point after they are printed. The pattern on the page never changes, and the codes you have already printed keep working even if you stop paying.

Three codes free, no card. Paid plans start at £3.49 a month including VAT.