TL;DR
If a PDF link opens in the browser instead of downloading, right-click the link and choose "Save link as." If the site disables right-click, open the PDF in Chrome's built-in viewer and click the download icon in the top-right toolbar. If that is hidden too, hit Ctrl+P (Cmd+P on Mac), choose "Save as PDF" as the destination, and print. For stubborn sites — inline viewers, blob URLs, PDF.js embeds — grab the real URL from the network tab or use an extension like Convert Web to PDF to re-render the page as a fresh PDF you own.
Method 1: right-click > Save link as
This is the boring answer that works 80 percent of the time and nobody tries first.
Hover over the link that points to the PDF. Right-click it. In the context menu, click Save link as... (or Save target as... on older browsers). Pick a folder. Done.
Why this works when clicking the link doesn't: a normal left-click follows the link, which usually means "let the browser render this in its built-in PDF viewer." That is not a download — it is a preview. Save link as skips the viewer and writes the file straight to disk.
A few gotchas:
- The link has to actually be a PDF URL. If it looks like
https://example.com/download?id=482, the server decides what to send. Save link as still works, but the file might land without a.pdfextension. Rename and open it — if it opens, you got the file. - On macOS, Ctrl+click or two-finger click if your trackpad has no right button.
- JavaScript click handlers that route through a "download center" get bypassed entirely because you are talking to the raw
href.
If Save link as gives you an empty file or a 403, the server is checking a Referer header or session cookie. Skip to Method 4 or Method 6. Middle-click also works — same result as right-click but faster with a scroll wheel.
Method 2: Chrome PDF viewer download icon
You clicked the link. The PDF loaded in the browser tab. Now you want the file on your disk.
Look at the toolbar that appears when you hover the top of the PDF. In Chrome, Edge, Brave, Arc, Opera, and every Chromium browser, the toolbar has these icons in the top-right corner:
- Page fit / zoom controls
- Rotate
- Download (a downward arrow into a tray)
- Print (a printer icon)
- More options (three dots)
Click the download icon. The PDF saves to your default downloads folder with whatever filename the server suggested.
If the toolbar is not visible, move your mouse to the very top of the PDF area — the toolbar auto-hides after a few seconds of inactivity. On smaller screens it can be tucked behind the browser chrome; try scrolling up first.
When the download icon is missing:
- Sites that embed the PDF in an
<iframe>or<embed>tag hide the toolbar. Right-click the PDF area and choose Open frame in new tab — the PDF loads standalone with the full toolbar. - Corporate or educational portals ship custom viewers (PDF.js, PSPDFKit, Foxit) that overlay the native Chrome one. Their toolbar might have no download button by design. Ctrl+P still works.
- Firefox has its own PDF viewer with the same download button in the top-right.
Filename tip: files often save as download.pdf because the server did not send a Content-Disposition header. Grab the real URL and use its last path segment as the filename.
Method 3: Ctrl+P > Save as PDF from the viewer
This method works everywhere. Even on sites that hide the download button, block right-click, and route everything through JavaScript. Because you are not downloading the original file — you are printing the rendered page to a new PDF.
How to do it:
- Open the PDF in the browser tab (click the link, or open the viewer).
- Press Ctrl+P (Windows / Linux) or Cmd+P (macOS).
- In the print dialog, change Destination to Save as PDF.
- Click Save. Pick a folder. Done.
The result is a PDF file on your disk that looks identical to what was on screen.
Trade-offs vs. the original file:
- Text is usually preserved as searchable, copy-able text. The browser reads the source PDF, rasterizes and re-embeds each page. Modern Chrome does a good job here.
- You may lose form fields, embedded videos, JavaScript actions, and internal links. The print-to-PDF path flattens interactivity.
- File size can grow if the source PDF used image compression the print pipeline does not preserve.
- Metadata is stripped — the new PDF will have Chrome-set title and no author fields.
For a plain document you want to read or archive, none of that matters. For a form you need to fill out and email back, you want the original file — try Methods 4 or 5 instead.
This method is also the escape hatch for sites that show the PDF but disable everything else. If you can see it on screen, Ctrl+P can save it. The only cases where this fails: DRM'd PDFs (rare on the public web), and viewers that specifically detect and block print (also rare — most sites do not go to that trouble).
Related: for saving arbitrary web pages as PDF rather than just PDF files, see how to save a webpage as PDF in Chrome — same Ctrl+P trick, different starting point.
Method 4: view-source and copy the URL
This is the "the link is not really a link" method. Some sites wrap PDF links in JavaScript handlers, click-tracking pixels, or React components that never expose the raw URL in a way you can right-click.
How to find the real URL:
- View page source. Right-click anywhere on the page (not on the link) and choose View page source, or press Ctrl+U (Cmd+Option+U on Mac).
- Search for
.pdf. Press Ctrl+F, type.pdf, and cycle through results. You are looking for a URL likehttps://example.com/documents/report.pdfor a query-string URL that clearly returns a PDF (.../download?file=report.pdf). - Copy the URL, paste it into a new tab. The PDF should load directly. Now use Methods 1, 2, or 3.
If view-source doesn't show it, the URL is generated by JavaScript after page load. In that case:
- Open DevTools (F12 or Ctrl+Shift+I / Cmd+Option+I).
- Go to the Network tab.
- Reload the page or click the download button.
- Filter by Doc or type
pdfin the filter box. - When the PDF request appears, right-click it and choose Copy > Copy URL (or Copy as cURL if you need the headers too).
You now have the actual URL the browser used. Paste into a new tab or feed to curl (Method 6).
Blob URLs are a special case. If the PDF loads from blob:https://..., the browser generated it in memory from JavaScript and the URL is scoped to that tab — you cannot open it elsewhere. Right-click the viewer and Save as (usually works), use the built-in download icon, or fall back to Ctrl+P.
For a deeper look at how sites hide their real URLs, see best Chrome extensions for data collection — the same techniques help you find any resource, not just PDFs.
Method 5: browser extension for stubborn sites
Some sites are actively hostile to downloads. They render PDFs in a canvas element (so there is no PDF file to save — just pixel data), they gate downloads behind login walls, or they use viewer libraries that specifically strip out save/print controls.
For those cases, extensions do two useful things:
Save the rendered page as a fresh PDF. Convert Web to PDF captures the current page — including the embedded PDF viewer — as a new PDF file on your disk. It works entirely in your browser (nothing uploaded to a server), and it handles pages that Ctrl+P mangles because Chrome's print engine renders full pages differently than the print dialog does. Install it, open the page with the PDF, click the extension icon, save. Done.
Grab the underlying file when the page has one but hides it. Extensions that expose all page resources (image savers, video downloaders, and generic asset extractors) let you see every URL the page loaded, including PDFs the site tried to route through a viewer wrapper. Pick one from the Chrome Web Store — Chrome's built-in DevTools do the same job but require more clicks.
Things to avoid:
- Extensions that promise "download any PDF from any site" and require broad permissions like "read and change all your data on all websites." Most of them just do what DevTools does, but with an ad-serving business model. The safe PDF tools guide covers what to check before installing.
- Cloud-based "PDF downloader" services that ask you to paste the URL. They fetch the PDF server-side and can log the URL, keep a copy, or serve you something else entirely. Local extensions are almost always safer.
- Anything that requires you to disable your ad blocker or upload files to their server "for processing." Downloading a PDF should not require either.
If you need to save a PDF from a site regularly (weekly report, monthly statement, class handouts), an extension you can trigger with one click beats remembering seven different tricks.
Method 6: wget / curl
For power users, sysadmins, and anyone who needs to script a download: the command line is faster and more reliable than any browser workflow.
curl — the basic case:
curl -O https://example.com/documents/report.pdf
The -O (capital O) tells curl to save the file with the same name it has on the server. You get report.pdf in your current directory.
When the server checks headers:
curl -O \
-H "User-Agent: Mozilla/5.0" \
-H "Referer: https://example.com/reports/" \
https://example.com/documents/report.pdf
Some servers reject requests without a real browser User-Agent. Others require a Referer header matching the page the link was on. Add both, and most 403 errors go away.
When authentication is required: export session cookies from the browser (DevTools > Application > Cookies, or a cookies.txt extension) and pass them:
curl -O -b cookies.txt https://example.com/documents/report.pdf
wget — for multiple files: put URLs in a text file, one per line, then wget -i urls.txt. For authenticated wget, --load-cookies cookies.txt handles the session.
Copy as cURL is the easiest way. In Chrome DevTools, right-click the PDF request in the Network tab and choose Copy > Copy as cURL. Paste into your terminal — you get a curl command with every header and cookie the browser sent. Add -O outputfile.pdf at the end and run it.
Method 7: batch download multiple PDFs
You need every PDF on a research page, every invoice from a customer portal, every handout from a course. One-at-a-time gets old fast.
Option A: Chrome's built-in "Save all as PDF" through print. Only useful if every PDF is embedded on the same page — pick "Save as PDF" in the print dialog and Chrome bundles them into one file.
Option B: DownThemAll (Firefox) or similar Chrome extensions. DownThemAll shows every downloadable link on a page, lets you filter by file type (*.pdf), and downloads them in parallel. Chrome equivalents: "Simple mass downloader," "Chrono Download Manager." Install one, open the page with the PDF list, filter to PDFs, download.
Option C: wget with --accept=pdf:
wget -r -l 1 -A pdf https://example.com/reports/
-rrecursive-l 1follow links one level deep-A pdfonly accept.pdffiles
wget crawls the page, finds every PDF link, and downloads them into a folder mirroring the site structure. Add --no-parent to keep it from wandering up the directory tree, and --wait=2 to space out requests so the server doesn't rate-limit you.
Option D: a scraper for pages that don't expose direct links. If the site returns a paginated list of records where each has a "View PDF" button routed through JavaScript, a browser scraper like the ones covered in best free web scraper Chrome extensions can extract every URL, then feed them into wget or a download manager.
Option E: convert every page yourself. If the PDFs are one-per-page and you want them archived as static files rather than the site's dynamically served originals, Convert Web to PDF can render each URL to a saved PDF. Slower, but the output is under your control and has no server dependency.
A practical rule for batching: always throttle. Even public sites have rate limits, and hitting them with 50 concurrent requests to grab 50 PDFs is a good way to earn a temporary IP block. wget's --wait=2 --random-wait adds a small delay between requests and makes you look like a slow human instead of a bot. For related etiquette, is web scraping legal covers what you can and cannot do with public files.
Frequently asked questions
How do I download a PDF from a website that blocks right-click?
Sites that disable the context menu usually only block the JavaScript-level right-click event. You can still: (1) press Ctrl+P and save as PDF from the print dialog, (2) open DevTools with F12, find the PDF URL in the Network tab, and download it directly, or (3) use an extension that captures the page as PDF. In Chrome, hitting Escape after the block modal appears sometimes restores right-click for one click. You can also disable JavaScript for the tab temporarily in DevTools > Settings, then reload — the anti-right-click script never runs.
How do I download a PDF that opens in the browser?
If the PDF loads inside a Chrome or Edge tab, look for the download icon (downward arrow) in the top-right corner of the PDF toolbar — that saves the original file to your default downloads folder. If the icon is missing because the PDF is embedded in an iframe, right-click the PDF area and choose "Open frame in new tab" first. If nothing works, Ctrl+P > Save as PDF always produces a working copy, even when the original download is blocked.
How do I batch download multiple PDFs?
For a page with visible PDF links, use a Chrome extension like Simple Mass Downloader or Chrono Download Manager — they list every link on the page, filter by file type, and download in parallel. For a folder-style listing on the server, wget -r -l 1 -A pdf https://example.com/reports/ recursively grabs every PDF one level deep. For sites where each PDF is behind a JavaScript button, use DevTools to capture the URL pattern, then loop it in a script. Always throttle with --wait=2 to avoid rate limits.
How do I download a PDF from a URL in the terminal?
Use curl -O https://example.com/report.pdf — the -O flag saves with the server's filename. If you get a 403 error, add -H "User-Agent: Mozilla/5.0" to mimic a browser, and -H "Referer: https://example.com/" if the server checks where the request came from. For authenticated downloads, export your browser cookies to cookies.txt and pass -b cookies.txt. The fastest way to get a working curl command is Chrome DevTools > Network > right-click the PDF request > Copy as cURL, which builds the full command including every header the browser sent.
Why does the download button not appear on some PDFs?
Three common reasons. First, the site embeds the PDF in an iframe with custom parameters that hide the native toolbar — right-click the PDF area and "Open frame in new tab" restores it. Second, the site uses a custom viewer (PDF.js, PSPDFKit, Foxit) that renders the PDF into a canvas without a save control — there is no file for the browser to save, so the button is intentionally absent. Third, corporate viewers strip download for DRM or compliance reasons. In all three cases, Ctrl+P > Save as PDF still works because it captures the rendered pages, not the source file.
Bottom line
Downloading a PDF from a link is almost always trivial: right-click, Save link as. When the site fights back, escalate through the methods in order — built-in viewer download, Ctrl+P print-to-PDF, view-source, DevTools network tab, extension, curl. One of them will work. There is no site on the public web that can truly prevent you from saving a document you are already looking at.
For pages that don't expose a PDF file at all — dynamic dashboards, single-page apps, custom viewers — the reliable move is to render the visible page as a fresh PDF yourself. That is what Convert Web to PDF is built for: one click, local processing, no server upload, works on every site including the ones with hostile download controls.