QR code SVG generator

Type a link or any text and download its QR code as an SVG: a single vector path that prints, engraves and cuts sharply at any size. The code is made in your browser and holds your text directly.

Free, no account. The file is read by code running in your browser. It is not uploaded, and nothing about it is stored.

The code is worked out on your device. Nothing you type here is sent anywhere, and the code does not pass through any server when it is scanned: it simply holds your text.

How to make a QR code as an SVG

  1. Type or paste the link or text. The code appears as you type.
  2. Pick the error correction level. M suits most printing; choose Q or H for a code that may get scratched or dirty.
  3. Set the size in millimetres and leave the quiet zone at 4 modules unless space is very tight.
  4. Scan the preview with your phone to check it, then download the SVG.

What this SVG QR code generator writes

A QR code is a grid of small squares called modules. Many generators save one rectangle for each dark module, several hundred of them, with hairline gaps showing between them at some zooms. This one traces the outline of every dark area instead and writes a single <path>. Squares that share a side are merged, so there are no lines inside a dark area for a blade or a laser to follow, and squares that only touch at a corner stay separate outlines.

The viewBox is counted in modules, so every corner sits on a whole number and nothing is rounded. The width and height are the size you set, in millimetres. A white background rectangle is included unless you untick it; without it the gaps between modules are see-through.

The encoder is written for this site and follows the QR Code standard, ISO/IEC 18004: versions 1 to 40, all four error correction levels, and the mask chosen by the standard’s penalty rules, which keep large blank or blocky areas out of the pattern. Every kind of code it makes is read back by an independent decoder when the site is tested.

How much a code holds, and how big it gets

The more you put in, the more modules the code needs. The sizes are called versions: version 1 is 21 × 21 modules and each version adds four a side, up to version 40 at 177 × 177. The tool picks the smallest version that fits your text.

What is stored depends on the characters. Digits alone are packed three to every 10 bits. Capital letters, digits, the space and $ % * + - . / : are packed two to every 11 bits. Anything else, including lower-case letters, is stored as bytes in UTF-8: one byte for a plain letter, two for most accented letters, four for an emoji. A version 40 code at level L holds 7,089 digits, 4,296 capitals and digits, or 2,953 bytes.

A 23-character link such as https://plotcaster.com/ fits a version 2 code of 25 × 25 modules at level M, and needs version 3, 29 × 29, at level H. Short links make small codes that scan from further away.

Error correction: L, M, Q or H

  • L can lose about 7% of its data and still read. Smallest code; fine for a screen or clean print.
  • M recovers about 15%. The usual choice.
  • Q recovers about 25%. For labels that get handled.
  • H recovers about 30%. For outdoor signs, engraving on rough material, or when part of the code will be covered.

The smallest size that scans

What a camera has to resolve is one module, so the limit is the module size, not the size of the whole code. As a rule of thumb, a phone held close to good print needs modules of at least 0.4 mm. A version 2 code with its quiet zone is 33 modules across, so 13.2 mm is about as small as it should go. The page works this figure out for your code and warns you when the size you set falls below it.

Distance matters as much. A common rule is that a code reads from about ten times its own width: 2 cm across for a label read from 20 cm, 20 cm across for a poster read from two metres. Both rules are starting points. Paper, ink, lighting and the phone all change the result, so scan a printed proof before you make many.

The quiet zone is the empty margin round the code, and the standard asks for four modules of it. Readers use it to find the code’s edge. It can be reduced when the code sits alone on a plain light surface, but not when other printing comes close.

Cutting, engraving and plotting a QR code

Because the code is one path of closed outlines, it can go straight to a laser, a vinyl cutter or a pen plotter that fills shapes. For vinyl, think about weeding: a QR code is dozens of separate pieces, and at small sizes they are too small to handle. Untick the white background for cutting, so the square behind the code is not cut as well.

Engraving often gives a light mark on dark material, which reverses the code. Many phones read a reversed code, but not all readers do. If you can, engrave the background and leave the modules, or test with several phones.

Questions

Will the QR code expire?

No. The code holds your text itself, not a link to a service that redirects. It works for as long as the thing it points to exists, and no one can count or track its scans through this site.

Can I put Wi-Fi details or a contact card in it?

Yes, as text. Phones recognise certain layouts: for Wi-Fi, type WIFI:T:WPA;S:network name;P:password;; and the camera will offer to join. A contact card can be pasted in as vCard text.

Can I add a logo in the middle?

Not here. Covering modules works only because error correction repairs the damage, so it spends the margin that keeps the code readable. If you add one in a drawing program, use level H, keep it small and test the print.

Why is my code so dense?

It holds a lot. Long links with tracking codes need many modules. Shorten the link, or drop the error correction to L or M. Text made only of digits, or only of capitals and digits, packs tighter than mixed text.

Which kinds of QR code are not made?

Micro QR codes, Kanji mode, codes split across several symbols, and codes with a character set marker (ECI). Text is stored in the most compact single mode that fits all of it.

Related