How to generate bulk QR codes as SVG files

Last updated: July 2026 · About 6 minutes

If your QR codes are going to a printer, a sign maker, or into InDesign, you want SVG rather than PNG. This guide covers how to get vector output in bulk, what the difference actually means in practice, and when PNG is the right answer instead.

Doing it

  1. Provide your URLs on the generator — CSV upload, the manual form, or by pasting a list.
  2. Leave QR codes per image at 1.
  3. Set File format to SVG.
  4. Generate. The ZIP contains one .svg per URL.

Filenames work exactly as they do for PNG — chosen column, optional prefix, duplicate suffixing — just with an .svg extension. See naming files from a spreadsheet column.

Why vector matters for QR codes

A PNG is a grid of pixels. A 300 × 300 PNG contains exactly 300 × 300 pixels of information, and enlarging it means inventing the pixels in between — which softens the edges of every module in the pattern.

An SVG is a set of instructions: draw a black square here, another there. Rendered at 2 cm or 2 metres, the edges are computed fresh and stay perfectly sharp. The file is also usually smaller — a QR code is a few hundred rectangles, which compresses to a couple of kilobytes.

For QR codes specifically, three consequences follow:

When PNG is the better choice

SVG is not automatically correct. Choose PNG when:

Unsure? Generate both. The batch takes seconds and costs nothing, and having a PNG alongside each SVG saves a round trip when a supplier turns out to want the other one.

Using SVG QR codes in design software

Adobe Illustrator and InDesign

Place the SVG as you would any vector asset. In Illustrator it arrives as editable paths, which means you can recolour the pattern — though see the warning below about contrast. In InDesign, use a data merge with a path column if you are placing hundreds of codes onto per-record layouts.

Figma, Sketch, Affinity

Drag the file in. All three import SVG as vector shapes. Group before scaling so the modules stay aligned relative to each other.

Web pages

Reference it with an <img> tag or inline the markup directly. Inlining lets CSS reach the shapes, which is occasionally handy for dark-mode variants — though again, contrast rules apply.

Command-line conversion

Need a PDF or a high-resolution raster from the SVG afterwards, tools like rsvg-convert or inkscape --export-type=pdf handle a whole folder in one pass. Because filenames carry your identifiers, the converted files keep them.

Things people get wrong with vector QR codes

Recolouring until contrast fails

Editable paths tempt people into brand colours. Scanners need strong contrast between the dark modules and the light background — dark on light, with real separation. A mid-grey code on a pale-yellow background may look pleasant and fail on half the phones that try it.

Cropping the quiet zone

The generated SVG includes the white margin the specification requires. It is not decoration. Trimming to the black edge in a design tool is one of the most common causes of a code that "worked on screen" and fails in print.

Distorting the aspect ratio

Scale proportionally, always. A QR code stretched even slightly out of square confuses the module grid that scanners reconstruct.

Assuming vector fixes a long URL

Vector output keeps edges sharp, but it does not reduce the number of modules. A long tracking URL still produces a dense pattern that needs physical size to be scannable. Shorten the URL — that is the only real fix. The same point comes up in asset labelling, where redirecting through a short URL on your own domain solves both this and the problem of changing destinations later.

Error correction and vector output

The error-correction setting applies to SVG exactly as it does to PNG — it changes the pattern itself, not the file format. If the codes are going onto something that will be handled, scuffed, or partly obscured by a logo, raise the level. See error correction levels explained.

Open the generator