Open the PDF QR Code Generator
What is a PDF QR code?
A PDF QR code is a URL QR code. The symbol holds a web address; the PDF itself sits on a server, and the phone's browser downloads it after the scan. Nothing about the document is stored in the pattern of black and white squares.
That distinction trips up a lot of people, so it is worth being blunt about the numbers. The largest symbol the QR standard defines is version 40 at error-correction level L, which holds 2,953 bytes of binary data in a 177×177 grid. A single-page PDF with a logo and one photo usually runs 80–300 KB. You are roughly a hundred times over budget before you even open a two-page document. There is no encoder setting that fixes this, and any service claiming to "embed the PDF in the QR code" is really hosting the file and encoding a link, exactly as described here.
Once you accept that the code is just a pointer, the interesting work moves elsewhere: where the file lives, how fast it loads on mobile data, whether the URL survives your next website rebuild, and whether the document is readable on a 6-inch screen. Those four questions decide whether a printed run of 5,000 flyers works or wastes money.
When to use it
- Product manuals on packaging. A code on the box or on a label under the appliance replaces a 40-page booklet, and it still works five years later when the paper copy is long gone.
- Restaurant wine and drinks lists. Food menus are better as HTML, but a 20-page wine list with vintages and tasting notes is a legitimate PDF, and it changes less often than the food menu.
- Real estate window cards. The card shows three photos and a price; the code opens the full spec sheet with floor plans, energy rating and measurements.
- Trade show handouts. Print a one-page teaser with a code to the 30-page technical datasheet, so you carry 200 sheets of paper instead of 200 booklets.
- Safety and compliance documents. Safety data sheets, LOTO procedures and inspection certificates posted next to machinery, where the printed copy would be laminated and out of date.
- School and club forms. Permission slips, trip itineraries and fee schedules on a noticeboard, where parents photograph the code and read it on the train home.
- Event programs. Conference agendas, tournament brackets and seating plans that get last-minute changes; you swap the file behind the same URL and every printed code keeps working.
- Warranty and assembly instructions. Flat-pack furniture, bikes, garden equipment: one code inside the lid, one PDF per SKU, no booklet printing.
A pattern worth noticing: every good use case involves printed material with a long life or a document too big to print. If the document is short, current and mostly text, a normal web page beats a PDF on every measure that matters on a phone.
How to create one
- Finalise the PDF first. Proofread it, compress the images, and give it a filename with no spaces, no uppercase and no version number you plan to change:
installation-guide.pdf, notInstallation Guide v3 FINAL.pdf. - Upload it to a stable public URL. Your own domain is best:
https://example.com/docs/installation-guide.pdf. Keep a/docs/folder that you promise yourself you will never reorganise. - Open the URL in a private window on your phone. If it asks you to sign in, or shows a preview wrapper instead of the file, fix the hosting before you go any further.
- Decide between the direct file link and a landing page. See the comparison below; this is the one decision that is expensive to reverse after printing.
- Paste the final URL into the generator and produce the code. Check the URL character by character, including
https://and any trailing slash. - Download vector output for print (SVG or EPS) and a PNG of at least 1,000 px for screens and slide decks. Never scale a small PNG up in a layout tool.
- Test on real hardware. One iPhone with the native camera, one Android with Google Lens, and one scan from inside a social app's in-app browser, which is where PDFs most often misbehave.
- Test the printed proof, not the screen. Print at final size on the final stock, then scan it at the distance a real person will stand, in the light the code will actually live in.
The data format
What the code actually contains
The payload is the plain URL and nothing else — no wrapper, no metadata:
https://example.com/docs/installation-guide.pdf
Because that string contains lowercase letters, the encoder uses byte mode. QR's compact alphanumeric mode only covers digits, uppercase A–Z, space and nine symbols, so a normal lowercase URL cannot use it. In practice you should assume byte mode and budget accordingly.
URL length drives the module count
Every character you add can push the symbol to a larger version, which means more modules squeezed into the same printed square. At error-correction level M, byte mode capacities look like this:
| URL length | QR version | Grid size | Module width at 25 mm printed |
|---|---|---|---|
| up to 26 characters | 2 | 25 × 25 | 0.76 mm |
| up to 42 characters | 3 | 29 × 29 | 0.68 mm |
| up to 62 characters | 4 | 33 × 33 | 0.61 mm |
| up to 84 characters | 5 | 37 × 37 | 0.56 mm |
| up to 106 characters | 6 | 41 × 41 | 0.51 mm |
| up to 152 characters | 8 | 49 × 49 | 0.43 mm |
Module widths above include the mandatory four-module quiet zone on each side. Sub-0.5 mm modules are where cheap printing starts to fail, so a 150-character URL on a business card is asking for trouble. Two habits keep you in the safe zone: use short folder names, and strip campaign parameters. A single ?utm_source=flyer&utm_medium=print&utm_campaign=spring2026 adds 62 characters and can cost you two versions of density.
Link shorteners solve the length problem and create a dependency: if the shortener disappears or blocks your account, every printed code dies at once. Some corporate mail filters and a few scanner apps also flag shortened links. If you shorten, do it on your own domain with a redirect you control.
Direct file link or a landing page?
| Direct link to the .pdf | Link to an HTML landing page | |
|---|---|---|
| Taps to content | One — the file opens immediately | Two — page, then download button |
| Behaviour in in-app browsers | Unpredictable; some download silently | Reliable, because it is a normal web page |
| Updating the document | Only by replacing the file at the same path | Change which file the button points to |
| Multiple languages or versions | Needs one code per file | One code, several buttons |
| Measurement | Server logs only | Normal analytics, if you disclose it |
| Search visibility | The PDF may rank, but as a bare file | A page you can title, describe and link |
| Maintenance | None | One more page to keep alive |
My rule: direct link for short, stable, single-language documents — a two-page wine list, a one-page price sheet. Landing page for anything you will revise, anything over about 2 MB, anything with multiple language editions, and anything printed in volume, because the page gives you an escape hatch when the document changes shape.
File size, and what people actually feel
Aim under 1 MB for documents people open standing up, and treat 5 MB as a hard ceiling for anything scanned in public. On a weak mobile connection, a 12 MB scanned-image catalog is 20–30 seconds of a white screen, and most people give up in five.
Three fixes do most of the work. Downsample images to 150 ppi — nobody is printing your brochure from a phone. Export text as text rather than scanning a printout, which also makes the document searchable and accessible. And save with "fast web view" (a linearized PDF), so a browser can render page one while the rest streams in, provided your server supports range requests. Most static hosts do.
Sizing, placement and printing
The working rule for QR codes is width ≈ scan distance รท 10, then round up. Add margin if the surface is curved, glossy, or likely to be scanned in bad light.
| Where the code lives | Typical scan distance | Minimum printed width | Notes |
|---|---|---|---|
| Business card, appointment card | 15–20 cm | 18–20 mm | Keep the URL under 40 characters |
| Product box, appliance label | 20–30 cm | 20–25 mm | Avoid folds, seams and curved edges |
| A5 flyer, menu insert, invoice | 30 cm | 25–30 mm | Matte stock scans better than gloss |
| A4 poster, noticeboard sheet | 60–100 cm | 60–100 mm | Put it at chest height, not floor level |
| Estate agent window card | 1–1.5 m | 120–150 mm | Watch for daytime glare on the glass |
| Trade show banner | 2–3 m | 250–300 mm | Nobody scans above 2.2 m; keep it low |
Other things that decide whether the print run scans: keep the four-module quiet zone clear of any graphic; keep modules at 0.5 mm or wider for digital print, 0.6 mm for offset, and 1 mm for screen printing on fabric or plastic; print in 100% K rather than rich black, so slight registration drift does not blur the edges; and place vector artwork at final size instead of scaling a bitmap.
Always caption the code. "Scan for the full installation guide (PDF, 2.1 MB)" earns far more scans than a bare square, and printing a short fallback URL underneath serves the people whose camera is not cooperating. Skip the fashionable low-contrast treatments: pale grey on cream, gradients, and centre logos larger than about 6% of the area all eat into the error correction you paid for.
Designing the PDF for phone screens
An A4 page shown full-width on a 390 px screen renders 11 pt body text at roughly 4 pt apparent size. PDFs do not reflow, so the reader pinches, zooms and pans through a two-column layout with no memory of where the paragraph started. If the document exists mainly to be read after a scan, design it for that: single column, 14–16 pt body text, A5 or a custom 105 × 148 mm page, generous line spacing, and no tables wider than the page. Interactive form fields are the other common disappointment — many mobile viewers render them but will not save, so offer a web form when the point is data collection.
Common mistakes and how to fix them
| Symptom | Cause | Fix |
|---|---|---|
| Code scans, browser shows 404 | The file was renamed, moved or "tidied up" after printing | Restore the old path, or add a 301 redirect from it to the new location, and keep that redirect forever |
| Phone downloads the file instead of showing it | Server sends Content-Disposition: attachment or the wrong MIME type | Serve Content-Type: application/pdf with Content-Disposition: inline |
| Nothing opens when scanned from inside a social app | The in-app webview has no PDF renderer | Point the code at a landing page with an explicit download link |
| Long white screen before anything appears | Multi-megabyte scanned PDF, not linearized | Downsample images to 150 ppi, re-export with fast web view, target under 1 MB |
| Camera hunts and never locks on | Modules under 0.5 mm, or glare from laminate | Enlarge the code, shorten the URL, switch to matte stock or reposition away from the light |
| Paper proof scans, production run does not | Code was scaled down in the layout, or CMYK misregistration softened the edges | Place SVG at final size and print the code in black only |
| "Request access" screen from a cloud drive | Sharing left as restricted, or a signed link that expired | Self-host the file, or set link sharing to public with no expiry |
| Old printed codes show last year's prices | Version number baked into the filename | Serve a stable path such as /docs/price-list.pdf and replace the file behind it; archive old editions elsewhere |
Security and privacy notes
The code carries no personal data — it is a URL. The risks live in the document and the hosting.
PDFs remember more than you think. Author name, the software used, edit timestamps and XMP metadata all travel with the file. Cropped images often retain the cropped-away pixels, and text hidden under a black rectangle is still selectable text. Real redaction removes the content and flattens the result; drawing shapes over it does not. Check Document Properties before publishing, and strip metadata with a tool like exiftool if the file leaves your organisation.
An unlisted URL is not access control. Public PDFs get crawled, indexed and cached, sometimes within days, and the address ends up in referrer headers, chat previews and email scanners. If a document should not be public, put it behind a login or a short-lived signed link; do not rely on nobody guessing the path. When a file should stay out of search results, send X-Robots-Tag: noindex for it.
Server logs are still logs. Every scan records an IP address, user agent and timestamp. If you add campaign parameters or route scans through an analytics service, say so in your privacy policy and keep the retention period honest.
Printed codes get tampered with. Stickers over posters are a real problem in public spaces. Print the code as part of the artwork rather than as a separate label, show your domain in readable text next to it, and check public installations periodically. A visible domain lets people notice when the destination does not match the poster.
FAQ
Can a QR code store the PDF file itself?
No. The largest QR symbol holds 2,953 bytes, and a modest PDF is 80–300 KB. The code always carries a URL to a hosted file. Any tool that claims otherwise is hosting the document for you.
Can I change the PDF after the codes are printed?
Yes, as long as the URL stays identical. Upload the new file over the old path and every existing code picks up the change. If the filename or folder changes, the printed codes break unless you add a redirect.
Should the code link straight to the .pdf or to a page?
Direct for short, stable documents in one language. A landing page for manuals, multi-language sets, files over about 2 MB, and anything you expect to revise. The page costs one extra tap and buys you flexibility.
Do I need a dynamic QR code service?
Only if you cannot control the destination URL. A static code plus a URL you own gives you the same editability for free: keep the address stable and change what sits behind it.
Are Google Drive or Dropbox links a good idea?
They work, with caveats. Sharing settings can silently change, the viewer wrapper adds load time, and the URLs are long, which makes the code denser. For anything printed in volume, host the file on your own domain.
How large should the file be at most?
Under 1 MB is comfortable, up to 5 MB is tolerable on a good connection, and beyond that expect people to abandon the download. Compressing images to 150 ppi usually cuts a brochure by 60–80% with no visible loss on screen.
Why does the PDF open on my iPhone but download on Android?
Handling depends on the browser and the installed viewer, not on the QR code. Android sometimes hands the file to a downloader, especially inside in-app browsers. A landing page with a labelled download button gives consistent behaviour.
Can I track how many people scan the code?
Yes, through server logs, a landing page with analytics, or a query parameter such as ?src=flyer. Query parameters lengthen the URL and therefore the code, so keep them to a few characters and disclose any tracking you do.
What error correction level should I choose?
Level M is the sensible default for paper. Move to Q or H for labels that get scuffed, wrapped around curves, or partly covered — but remember that higher levels add modules, so enlarge the printed code to keep module width above 0.5 mm.
Does the code expire?
The symbol never expires; it is ink. What expires is the destination. Keep the URL live, renew the domain, and audit printed campaigns once a year to confirm the links still resolve.
Related QR code guides
URL QR code · Restaurant menu QR code · vCard QR code · Google review QR code · WiFi QR code · EPC payment QR code