QR code for a PDF

Make a QR code for a PDF

A QR code cannot hold a PDF. It holds a short web address, so the PDF needs a link first. Upload the file here, get the link, and the QR code is generated from it as a PNG you can download and print.

1Choose a file
.
Pick a name, or leave it blank for a random one.
Drag & drop your file
or browse to choose
Documents, images and web pages · up to 150MB
2What is it?optional
3Who is it for? optional,
Two QR codes side by side at the same printed width, one 33 modules across and one 41, with the millimetres per module labelled

A QR code cannot hold a PDF

This is the part most instructions skip. A QR code is a way of writing text as a picture, and the text it can hold is a few hundred characters at best. A PDF is measured in hundreds of thousands. So a QR code never contains the document, only the address where the document lives, which means the real task is getting a short, stable address for the file first.

That is why a QR code generator on its own is not enough. Upload the PDF, get the link, and the code follows from it.

Once the upload finishes, the result panel shows a QR code button. It returns a PNG, sized to the address it encodes, and a download link that saves it as snapy-qr.png.

Two consequences worth knowing:

The printed code outlives the file. Replace the PDF behind the link next season and every poster, every menu and every business card still works, because none of them encode the document. This is the difference between a link and a direct file address, and it is the reason to bother with a link at all.

A shorter link makes a simpler code. The pattern gets denser as the text inside it gets longer, in fixed steps. Measured on the real generator:

The address encoded PNG size Grid At 3cm wide
https://menu.snapy.page/ 330 x 330 33 x 33 modules 0.91mm per module
https://menu.snapy.page/holiday-photos-2026 410 x 410 41 x 41 modules 0.73mm per module

Eight more modules across the same printed square means each one is 20% smaller, and the module size is what decides whether a phone can read it from a metre away. So a link named menu is not just tidier than autumn-menu-final-v3, it prints better.

Four ways a printed QR code fails

Every one of these is a real failure, not a design preference.

  1. Printed too small. Below about 2cm across, a handheld scan starts missing modules. A code meant to be read from across a room needs roughly one tenth of the reading distance in width, so a code read from 2 metres wants about 20cm.
  2. The quiet zone got cropped. A scanner needs a blank margin to find the edges of the code. The download already includes four modules of white border. Trimming tight to the pattern, or dropping the code onto a dark photo, removes it and the scan fails.
  3. The link was shortened again. Running the address through a second shortener adds a redirect and a different domain, which turns a code that works into one that depends on two services instead of one.
  4. The link expired. An expiry date is a feature here, and it applies to the QR code too. A code printed on something long lived should point at a link with no expiry set.

What this will not do

The generator only accepts addresses on snapy.host and snapy.page. Paste a link from another host and it is refused with an error, deliberately, because an open QR service that will encode anything is a phishing tool. It also does not style the code: no logo in the middle, no colours, no rounded modules. It returns a plain black and white PNG, which is the version that scans most reliably.

There is no scan counter either. A scan arrives as an ordinary open of the link, so it lands in the same count as a click from an email, and nothing distinguishes the two.

Test the printed copy, not the screen

Scanning a code on a monitor from 20cm away proves almost nothing. Print it at the size it will be used, put it where it will live, and scan it from where a person will stand. That one check catches the cropped quiet zone and the too small print, which between them are most of the codes that fail in the wild.

One PDF can be up to 150MB, and the free plan includes 1GB of storage, one live link, a custom link name, a password, an expiry date and the QR code.

Snapy Pro · unlimited links, and who opened them Refundable within 7 days