PNG, SVG, or PDF: Which Format to Use for a Printed QR Code
A QR code that scans fine on screen can print as a fuzzy square. The fix is picking the right format. Here is when PNG works, when you need SVG, and when a print shop wants PDF.
PNG, SVG, or PDF: Which Format to Use for a Printed QR Code
A QR code that scans perfectly on screen can come back from the printer as a fuzzy gray square. The pattern is still there, but the edges of the little black cells have softened, and some phones hesitate before they lock on. The usual reaction is to blame the printer. The real cause is almost always the file format the code was saved in, and the size it was printed at.
A QR code has none of a photo's tolerance for softness. A camera measures the exact boundary between black and white cells, and when those boundaries blur, the decode fails. This post explains why a raster QR blurs when scaled up, why a vector QR stays sharp, and how to pick between PNG, SVG, and PDF for a physical print.
Raster and vector are two different things
A PNG is a raster image. It stores the picture as a fixed grid of pixels, each with a color. A QR code saved as a 512 by 512 pixel PNG is a grid where some pixels are black and some white. The file has no idea it is a QR code; it only knows each pixel's color.
An SVG is a vector image. It stores the picture as shapes described by math: rectangles at given coordinates, sizes, and fills. A QR code saved as SVG is a list of black squares on a coordinate grid, with no pixels at all. The shapes are instructions, and the renderer draws them fresh at whatever size it is told to.
PDF sits in the same family as SVG. A PDF is a page description that can hold vector shapes, embedded fonts, and raster images together, with precise physical dimensions baked in. A QR code placed in a PDF as vector artwork carries the same math-based sharpness as an SVG, wrapped in a container that print shops are built to handle. That split, pixels versus math, is the whole story behind why print QR codes go wrong.
Why a raster QR blurs when you scale it up
Every raster image has a native size measured in pixels. A 512 pixel PNG looks crisp displayed at or below that count. Ask it to fill a space that needs more pixels than it has, and the software has to invent the missing ones. That process, upscaling, is guesswork.
The two common upscaling methods each fail differently. Smooth interpolation averages neighboring pixels, turning the hard black-to-white edge of every QR cell into a soft gray gradient. Nearest-neighbor scaling keeps edges hard but jagged, duplicating whole pixels into blocky steps that no longer line up with the true cell boundary. A scanner reads the first as smeared and the second as staircased, when what it needs is a clean square with a sharp edge.
The point where this bites is set by print resolution, measured in dots per inch (DPI). Print aims for 300 DPI, meaning 300 dots per inch of paper. To print a QR code two inches wide at 300 DPI, the file needs 600 pixels across. Hand the printer a 200 pixel PNG for that job and it stretches 200 pixels across 600 dots, tripling every pixel and destroying the edges. The QR looks fine on your monitor, where it only ever displayed at 200 pixels, and falls apart on paper.
For large-format work viewed from a distance, such as a poster, 150 DPI is often acceptable because the eye cannot resolve the dots at that range. Anything held in the hand should target 300 DPI.
Why a vector QR stays sharp at any size
A vector QR has no native pixel size to outgrow. When a print system renders an SVG or vector PDF at two inches, it draws each cell as a real square at two inches divided by the number of cells. At any larger size it draws the same squares bigger. The edges stay perfect at every size because they are computed at render time, not stored ahead.
This is why vector is the safe default when the final print size is unknown or likely to change. A designer who drops an SVG QR into a layout can scale it to fit without thinking about resolution. The same file works on a business card and on a trade-show banner.
The catch is that vector formats need software that understands them. A design tool, a layout program, or a print RIP renders an SVG or PDF correctly. A plain photo viewer or a social upload box may not, and some rasterize the file at low resolution first. Vector is the right answer for the print pipeline, not always for casual sharing.
When a PNG is genuinely fine
Raster is not a mistake. Within its size, a PNG is reliable and simpler to handle than vector. It is the wrong tool only when asked to scale past its pixels.
A PNG is the right pick when the code is used at a fixed, known size and you export it at that size or larger. A sticker printed at one inch square needs about 300 pixels, so a 600 or 1200 pixel PNG covers it with room to spare. A web page that shows the code at 240 pixels and never larger can use a 480 pixel PNG (exported at 2x for sharp display on high-density screens). In both cases the pixel count beats what the output needs, so no upscaling happens.
The rule is to export at, or above, the pixel count the final output demands, then never enlarge it afterward. Doubling the intended size is cheap insurance. PNG gets into trouble only when someone grabs a small on-screen copy and blows it up for a large print, the exact scenario vector was made to avoid.
When you need SVG
Reach for SVG when the code enters a design tool or when the final size is not locked. Illustrator, Figma, InDesign, and similar programs treat SVG as native artwork you can resize, recolor, and position without loss. If the code might appear at several sizes across a campaign, or the layout is still moving, SVG removes resolution from the list of things that can break.
Infinite scaling is the point. A single SVG serves a favicon-sized code and a wall mural from the same file. For anything large, a storefront window or a billboard, vector is the only format that guarantees clean cells at the final dimensions, because a raster file big enough to print a billboard at 300 DPI would be impractically huge while the SVG stays a few kilobytes.
When a print shop wants PDF
Commercial print shops frequently ask for PDF specifically, and the reason is predictability. A press-ready PDF carries the artwork, the exact page dimensions, and any embedded resources in one self-contained file that renders the same on their equipment as on yours. The physical size is written into the file, so there is no guessing about how large the code should be.
PDF also drops cleanly into a larger print job. A flyer, packaging layout, or menu is usually assembled as a PDF, and a vector-PDF QR slots in beside the rest of the artwork without a conversion step that could rasterize it. Confirming the size and quiet zone before you send it saves a round of corrected proofs.
The quiet zone and error correction
Two settings decide whether a small print scans, and both interact with size. The first is the quiet zone, the empty margin around the code. Scanners use that blank border to find where the code starts, and the standard calls for a margin of four cells on every side. Trim that margin to nothing, or set the code against a busy background, and phones struggle to locate it even when the code is sharp. Leaving the full quiet zone matters more, not less, as the print gets smaller.
The second is error correction, the redundancy built into the code. QR supports four levels: L recovers from about 7 percent damage, M about 15 percent, Q about 25 percent, and H about 30 percent. Higher correction lets the code decode when part of it is dirty, scratched, or partly covered, common on printed material that gets handled. The tradeoff is that higher correction packs in more cells for the same data, so each cell is smaller at a given print size and needs more resolution to stay readable. For a small handheld print such as a business card, level M or Q is a sensible balance, which the guide to a vCard QR code for business cards covers in more detail.
When NOT to reach for a given format
Two mistakes cause most failed print QR codes, and both are avoidable.
Do not upscale a small PNG to fill a large print. If you only have a 300 pixel PNG and the job needs 1800, enlarging it adds no real detail, only smeared or staircased cells. Regenerate the code at the size you need, or export it as vector, rather than stretching a small raster. This is the single most common reason a code that scanned on screen refuses to scan on paper.
Do not drop a huge logo into the middle of the code. A branded center logo works because error correction reconstructs the cells it hides. The logo spends part of the correction budget, and one that covers too much overruns it, leaving nothing in reserve for real-world scuffs and print imperfection. Keep any center logo small, within what the chosen correction level can absorb, and test the printed result before a full run. A code that scans on your desk under perfect light can still fail on a scuffed sticker if that budget was already spent on decoration.
How the ReezoAI tool handles all three
The ReezoAI QR code generator exports PNG, SVG, and PDF from the same code, so you can match the format to the destination without regenerating anything: PNG for a fixed known size, SVG for a design tool or free scaling, and PDF for a print shop that wants press-ready artwork. The quiet zone and error correction level are set before export, which is the right order: decide how robust and how large the code needs to be, then pick the format that carries it there cleanly.
The short version
Raster stores pixels and vector stores math, which is why a PNG blurs when scaled past its size while an SVG or PDF stays sharp. For print, aim for 300 DPI, so a PNG needs enough pixels to cover the final dimensions. PNG is fine at a fixed known size, SVG suits design tools and anything that scales, and PDF is what a commercial printer usually wants for a predictable, press-ready result.
Whichever format you choose, keep the full four-cell quiet zone, match the error correction level to how the code will be handled, and never enlarge a small raster to fill a large print. Get the size and settings right first, then export in the format the destination expects, and the code that scanned on screen will scan just as well on paper.
Open the tool.
Free with daily credits. The right tool for what you just read.
Related reading
Other articles
tools-tutorials
How to Make a QR Code for a Restaurant Menu
A menu QR code is just a pointer to a menu hosted elsewhere. Here is how to host the menu, choose static over dynamic, and print a code that survives a table.
10 min read
tools-tutorials
vCard QR Codes for Business Cards: What to Include, What to Skip
A vCard QR code drops your contact details into someone's phone in one scan. Here is how the payload works, which fields phones actually parse, and why a smaller code scans better.
10 min read
tools-tutorials
How to Make a WiFi QR Code That Actually Connects a Phone
A WiFi QR code is a short tagged string a phone reads straight from the camera. Here is the exact payload, what each field means, and when the code is the wrong choice.
10 min read