A QR code cannot hold a PDF. The largest QR code the standard allows stores 2,953 bytes of data; a one-page menu as a PDF is usually tens or hundreds of kilobytes. What a "PDF QR code" actually holds is a link to a PDF that lives somewhere online — and almost every PDF code that fails in the real world fails because of that link, not the code.
The file was shared privately, so scanners land on a sign-in page. The link was 120 characters long, so the code printed as a dense grid that older phones struggle with. The PDF was 20 MB, so the table waited half a minute on restaurant Wi-Fi. Or the file was updated, got a new link, and the printed code now opens last season's price list.
This guide goes through the four decisions that prevent all of that: where to host the PDF, static or dynamic, how big to print, and how to make the file itself load fast on a phone.
Step 1Host the PDF where the link stays stable
You need a public address that opens the file for anyone, without a login, and that will not change when you update the document. Three common choices, compared on the same menu file:
Dropbox share link
- Link length
- 124 characters
- QR grid
- v8 · 49×49
- Smallest print
- 22.8 mm
Own website, long WordPress path
- Link length
- 89 characters
- QR grid
- v6 · 41×41
- Smallest print
- 19.6 mm
Google Drive share link
- Link length
- 82 characters
- QR grid
- v5 · 37×37
- Smallest print
- 18.0 mm
Own website, short path
- Link length
- 28 characters
- QR grid
- v3 · 29×29
- Smallest print
- 14.8 mm
| Host | Link length | QR grid | Smallest print |
|---|---|---|---|
| Dropbox share link | 124 characters | v8 · 49×49 | 22.8 mm |
| Own website, long WordPress path | 89 characters | v6 · 41×41 | 19.6 mm |
| Google Drive share link | 82 characters | v5 · 37×37 | 18.0 mm |
| Own website, short path | 28 characters | v3 · 29×29 | 14.8 mm |
Source: CalculatorAI · calculatorai.app · drafts/qr-code-for-pdf-numbers.mjs
Your own website gives the shortest link and the cleanest experience: the phone opens the PDF directly in its built-in viewer. Upload menu.pdf to a short, permanent path, and when the menu changes, overwrite the file under the same name.
Google Drive is the quickest option if you have no website. The scan opens Drive's own preview of the file. To update it without changing the link, open the file's menu in Drive, choose Manage versions and upload the new PDF as a new version — the file ID and the shared link stay the same. Uploading a fresh copy instead creates a new link and breaks every printed code.
Dropbox works, but its share links are long, so the code comes out denser than it needs to be.
Step 2Static or dynamic: can you afford a reprint?
A static code encodes the PDF's address directly. It never expires and depends on no one but your host, but if that address ever changes, the printed code is dead. A dynamic code encodes a short redirect link instead — on CalculatorAI, calculatorai.app/qr/… — that you can point at a new PDF at any time, and it counts scans along the way.
For a PDF the choice usually follows the paper. A manual printed inside a product box, a restaurant menu on 40 table tents, a sign in a shop window: those are expensive to reprint, and the PDF behind them will change. A flyer for one weekend event: static is fine.
The dynamic link is also short. At 35 characters it produces the same 29×29 grid as a tidy link on your own domain — smaller than any Drive or Dropbox link. We explain the trade-off in full, including what happens to a dynamic code if the service behind it disappears, in static vs dynamic QR codes.
The PDF's own link, printed
Free forever and independent of any QR service. Update the file only by overwriting it at the same address (same filename on your site, Manage versions on Drive). No scan counts.
A short link you can re-point
Swap in a different PDF, host or page after printing; see scans by day, device and country; optionally require a password before the document opens. The free plan includes one dynamic code; Pro is unlimited.
Step 3Generate and size the code
Open the PDF QR Code Generator, paste the public link (or choose a dynamic code and set the PDF as its destination), and style it. Keep dark modules on a light background with strong contrast. If you add a logo, raise error correction to H — which grows the grid. The Google Drive link, for example, goes from 37×37 at level M to 49×49 at H.
Download SVG for print — it scales to any size without blurring — and PNG for screens and documents.
Size by scanning distance, not by taste. A practical rule is width ≈ distance ÷ 10: a code read from 30 cm at a table needs about 3 cm; one on a poster read from 2 m needs about 20 cm. The table above gives the absolute floor for each link at 0.4 mm per module — go above it, not near it.
Step 4Make the PDF itself load on a phone
The scan takes a second; the PDF is where people give up. The download time for the file alone, before any server delay:
25 MB
- Weak signal
- 100 s
- Typical 4G
- 20 s
- Good 5G / Wi-Fi
- 4 s
10 MB
- Weak signal
- 40 s
- Typical 4G
- 8 s
- Good 5G / Wi-Fi
- 1.6 s
2 MB
- Weak signal
- 8 s
- Typical 4G
- 1.6 s
- Good 5G / Wi-Fi
- 0.3 s
0.5 MB
- Weak signal
- 2 s
- Typical 4G
- 0.4 s
- Good 5G / Wi-Fi
- 0.1 s
| PDF size | Weak signal | Typical 4G | Good 5G / Wi-Fi |
|---|---|---|---|
| 25 MB | 100 s | 20 s | 4 s |
| 10 MB | 40 s | 8 s | 1.6 s |
| 2 MB | 8 s | 1.6 s | 0.3 s |
| 0.5 MB | 2 s | 0.4 s | 0.1 s |
Source: CalculatorAI · calculatorai.app · drafts/qr-code-for-pdf-numbers.mjs
A menu exported straight from a design app with full-resolution photos easily reaches 10–25 MB. In a basement restaurant on weak signal that is 40 to 100 seconds of a blank screen. Aim for under 2 MB:
- Export for screen, not print. Most design tools offer a smaller-file or web preset; images at around 150 dpi are plenty on a phone.
- Design for portrait. A landscape A4 spread becomes tiny text that people must pinch and scroll sideways.
- Put the answer on page one. The prices, the instructions, the schedule — whatever the reader scanned for.
- Keep text as text. A scanned image of a document is heavy and cannot be searched or read aloud.
If the document changes weekly, consider a simple web page instead of a PDF: it loads faster and reflows to any screen. A dynamic code lets you switch from one to the other later without reprinting — the approach our QR code menu guide recommends for restaurants.
Step 5Test before you print
Open the link logged out
Private browser window, no account. It must open the PDF, not a sign-in or request-access page.
Scan with two phones
One iPhone and one Android, from the real distance, under the real lighting. Glossy lamination and dim tables cause most failed scans.
Scan the printed proof, not the screen
Print one copy at final size first. A code that scans from a monitor can fail at 2 cm on textured paper.
Time the download on mobile data
Turn Wi-Fi off and open the PDF. If you are waiting, your customers are leaving.
Write down how to update it
The file path on your site, or the Drive file and 'Manage versions' — so whoever updates the menu next does not break the link.
Where PDF codes earn their keep
- Restaurant menus and price lists — the most common use; prices change, table tents should not.
- Product manuals and safety sheets — a code inside the box replaces pages of print and can point at a corrected version later.
- Event programmes and conference agendas — one code on the badge or the door; update the schedule when a talk moves.
- Property brochures and flyers — a floor plan and full specs behind a small code on a sign. If you need responses rather than a document, a QR code for a Google Form collects them instead.
- Invoices and statements — a link to terms, a catalogue or payment instructions without cluttering the page.
Whichever you choose, a code with no destination date does not expire by itself; what can break is the link or the service behind it, as we explain in do QR codes expire?.
Frequently asked questions
How do I make a QR code for a PDF?
Upload the PDF to your website or a cloud service, make it viewable by anyone with the link, copy that link, paste it into a PDF QR code generator and download the code as SVG for print. Test it from a logged-out browser and two phones before printing.
Can a QR code contain the PDF file itself?
No. Even the largest QR code holds 2,953 bytes, far less than any real PDF. The code stores a link, and the phone downloads the file from wherever it is hosted.
How do I update the PDF without changing the QR code?
With a static code, replace the file at the same address: overwrite the same filename on your website, or in Google Drive use Manage versions → Upload new version. With a dynamic code, you can also point the code at a completely new link.
Why does my PDF QR code ask people to sign in?
The file is not shared publicly. In Google Drive, set general access to "Anyone with the link" with Viewer permission; in other services, create a public share link rather than copying the address from your own logged-in browser.
Do PDF QR codes expire?
A static code never expires, but it stops working if the PDF is deleted, moved or made private. A dynamic code keeps working while its redirect service and your account keep it active.
Sources and methodology
QR versions and grid sizes were generated with the qrcode library the CalculatorAI generator uses, at error-correction levels M and H, for representative link formats of each host; the minimum print width uses 0.4 mm per module plus a four-module quiet zone on each side, the rule applied across our QR guides. The 2,953-byte limit is the capacity of a version-40 code at level L in binary mode, per the QR code standard (ISO/IEC 18004). Google Drive's default sharing state and its Manage versions behaviour are as described in Google's Drive help. Download times are file size divided by connection speed and ignore latency, so real waits are longer. All arithmetic is reproduced in drafts/qr-code-for-pdf-numbers.mjs.






