How to generate bulk QR codes as SVG files
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
- Provide your URLs on the generator — CSV upload, the manual form, or by pasting a list.
- Leave QR codes per image at 1.
- Set File format to SVG.
- Generate. The ZIP contains one
.svgper 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:
- One file works at every size. The same SVG serves a business card and a shop window. No regenerating at a larger size, no decision about resolution up front.
- Print shops stop asking questions. Vector artwork is what commercial printing expects. Supplying a PNG invites the "do you have this in vector?" email.
- Crisp edges scan better. Scanners look for hard transitions between light and dark modules. A resampled, slightly blurry PNG enlarged for a poster is measurably harder to read than vector output at the same size.
When PNG is the better choice
SVG is not automatically correct. Choose PNG when:
- You are putting codes on a printed sheet. Combined sheets — several codes arranged in a labelled grid — are composed as a raster image, so SVG is unavailable when "QR codes per image" is above 1. See printing sheets of QR codes.
- The destination is a web page or an email. PNG is universally supported in email clients; SVG is not.
- Your label software will not take SVG. Plenty of thermal label printers and older badge tools accept PNG only. Check before generating four hundred files in the wrong format.
- Someone downstream will open it in Word. Word's SVG support exists but is inconsistent across versions.
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.