TL;DR

Every modern browser can save a webpage as a PDF using the built-in print dialog: press Ctrl+P (Windows/Linux) or Cmd+P (Mac), change the destination to Save as PDF, then click Save. That takes about 15 seconds and works on Chrome, Safari, Edge, Firefox, Brave, and Arc. The catch is that browser print dialogs cut off lazy-loaded content, drop background images, and choke on infinite scroll — for those cases install Convert: Web to PDF, which captures the full rendered page as one continuous PDF.

Chrome: Ctrl+P > Save as PDF

Chrome's built-in save-as-PDF is the fastest option if the page is short, static, and doesn't rely on scroll-triggered loading. Here is the exact sequence:

  1. Open the page you want to save.
  2. Press Ctrl+P on Windows/Linux or Cmd+P on Mac. You can also right-click anywhere on the page and pick Print, or open the three-dot menu in the top right and click Print.
  3. In the print dialog that opens, find the Destination dropdown near the top. It usually shows a connected printer by default. Change it to Save as PDF.
  4. Check the preview on the left side of the dialog. Scroll through it. If the last page cuts off mid-sentence, that's a signal you have a lazy-loading problem — jump to the fixes section below.
  5. Click More settings to expand advanced options. Useful ones:
    • Paper size: A4 works globally; Letter is standard in the US.
    • Layout: Portrait for most articles; Landscape for wide tables and dashboards.
    • Margins: Set to None if you want the page to fill the sheet edge to edge.
    • Scale: Custom at 90-100% often fits a page cleanly onto one sheet without shrinking text.
    • Options → Background graphics: Turn this ON if the page has a colored background, dark mode, or CSS background images you want to keep. Chrome drops them by default.
  6. Click Save, name the file, pick a folder, and you're done.

The print dialog renders the page using Chrome's print stylesheet, not the screen stylesheet. That's why the output sometimes looks nothing like what you were reading: sites ship a separate CSS file specifically for printing, which strips nav bars, sidebars, comments, ads, and sometimes the article body itself. If the print preview looks wrong before you even hit Save, the site's print CSS is fighting you — the extension route bypasses this entirely by capturing what's actually on screen.

Safari, Firefox, Edge: same idea, different menus

The underlying operation is identical across browsers — they all wrap the OS print dialog or a lookalike, and every one exposes a PDF destination.

Safari (macOS). Press Cmd+P. In the print dialog, click the PDF dropdown in the bottom-left corner and choose Save as PDF. Safari also has a purpose-built shortcut: File > Export as PDF in the menu bar, which skips the print step entirely and saves the page as one continuous PDF (no pagination). Reader mode helps too — click the Reader icon in the address bar first, then export, and you get a clean, article-only PDF with no ads or nav.

Firefox. Press Ctrl+P (Windows) or Cmd+P (Mac). Firefox opens its own print preview panel — the destination dropdown at the top has Save to PDF. Firefox's preview shows page breaks accurately and has a Simplify page toggle that strips ads and formatting, similar to Safari's Reader.

Edge. Press Ctrl+P. Edge's dialog is closer to Chrome's than Firefox's — pick Save as PDF from the printer dropdown. Edge also has a hidden trick: in Immersive Reader (F9 on any article page), you can print from within reader mode and get a cleaner output than the raw page.

Brave, Arc, Opera, Vivaldi. All Chromium-based, all use the Chrome dialog verbatim. Same shortcut, same Save as PDF destination, same limitations.

Mobile. iOS Safari: tap the share icon, scroll down, tap Print, then pinch out on the preview thumbnail to convert it to a full-screen PDF you can share. Android Chrome: tap the three-dot menu, pick Share, then Print, then choose Save as PDF from the printer dropdown.

Why Chrome's built-in dialog cuts pages off

If you've ever printed a modern webpage to PDF and gotten a two-page document out of what visually looked like ten pages of content, you've hit the lazy-loading problem. Here's what's actually going on.

Most modern sites don't load their full page HTML upfront. Product grids, comment threads, article footers, related-post carousels, image galleries — these load only when you scroll them into view. It's called lazy loading and it's a performance optimization: pages feel snappier because the browser doesn't waste bandwidth on content you might never see.

When you press Ctrl+P without scrolling, Chrome renders the DOM in its current state. Anything that hasn't been scrolled into view hasn't been loaded, so it isn't in the DOM, so it doesn't appear in the print preview or the resulting PDF. The result: a PDF that ends abruptly wherever the visible content ran out when you opened the dialog.

Related issues from the same root cause:

  • Missing images: Images with loading="lazy" don't fetch until they're near the viewport. A print job triggered before scroll captures placeholder boxes or blanks.
  • Missing background graphics: A separate problem. Chrome disables background-image printing by default because it wastes ink. Toggle Background graphics in More settings to fix this.
  • Broken layouts: Sites use different CSS for print media (@media print) that can rearrange or hide entire sections.
  • Missing web fonts: Custom fonts sometimes fail to embed, so the PDF renders in a fallback font that breaks the visual layout.
  • Comments and dynamic sections cut off: Disqus threads, live-updating feeds, or any React-rendered content loaded via API calls after page load may be missing entirely.

For a deeper comparison of native browser print versus purpose-built extensions on real pages, see GoFullPage vs Convert: Web to PDF.

Fix 1: scroll to bottom first

The zero-cost workaround: before pressing Ctrl+P, scroll all the way to the bottom of the page. Slowly. Wait for images to load. If the page has infinite scroll, keep scrolling until you hit an actual footer or a "Load more" button that stops appearing.

Then scroll back to the top and press Ctrl+P. Chrome will render the now-fully-loaded DOM into the print preview.

Faster technique: press End to jump to the bottom in one keystroke, wait 3-5 seconds for content to hydrate, then Home to jump back to the top, then Ctrl+P. On Mac use Cmd+Down and Cmd+Up.

This works for most lazy-loaded content but fails in two cases:

  1. True infinite scroll (Twitter, Reddit feeds, some product listings) — new content loads forever as you scroll. There's no bottom.
  2. Scroll-triggered animations that don't persist — some sites tear down elements once they're out of view. Scrolling to the bottom loads new content but unloads what was above it, so when Ctrl+P triggers, only the last screenful is in the DOM.

For a longer analysis of pages that never stop loading, see Handle Pagination and Infinite Scroll When Scraping — the same techniques apply to any full-page capture problem.

Fix 2: install Convert: Web to PDF

For lazy-loading, infinite scroll, background images, and any page where the built-in print dialog produces junk, use a dedicated extension: Convert: Web to PDF.

What it does differently from Ctrl+P:

  • Auto-scrolls the page before capture, triggering all lazy loaders and image fetches so nothing is missing.
  • Uses the screen stylesheet, not the print stylesheet — so what you see is what you get in the PDF.
  • Captures the full page as one continuous PDF with no page breaks in the middle of sentences or images.
  • Keeps background graphics and web fonts without needing to toggle settings.
  • Preserves clickable links in the output PDF (see the linked-vs-flat section below).
  • Runs entirely locally — the page content never leaves your browser. No upload to a third-party server.

Install it from the Chrome Web Store, click the extension icon on any page, wait a few seconds while it scrolls and captures, and a PDF downloads to your default folder. That's the entire workflow.

For a full breakdown of how it works internally and why local conversion matters for anything sensitive, see Launching Convert: Web PDF Tool vs Extension.

You can also check out the tool page directly: /tools/convert-web-to-pdf/.

Login pages, paywalls, and infinite scroll

Three edge cases that break every method above deserve their own treatment.

Login-protected pages. Bank statements, order histories, HR portals, Gmail threads, Notion pages — anything that requires authentication. Online PDF converters can't help here: they'd need your credentials to load the page, and handing your bank password to a random website is not the plan. The Ctrl+P method works if you're logged in, but suffers the usual lazy-loading issues. A browser extension is the correct answer because it operates as you inside your logged-in session, exactly like the browser itself. See Save Webpages Behind Logins as PDF for a walkthrough of specific portals.

Paywalled articles. If you paid for a subscription and want to archive an article you're entitled to read, Ctrl+P works — you're the authorized user. If you're trying to circumvent a paywall using PDF export, that's a different question and this guide isn't going to help you with it.

Infinite scroll feeds. Twitter timelines, LinkedIn feeds, Reddit front pages, TikTok search results. There is no "bottom" to scroll to. Neither Ctrl+P nor a full-page capture extension will save the whole thing because the whole thing doesn't exist as a static document — it's a stream. Options: capture a specific range by scrolling manually and using screenshot tools, or (for research use) extract the underlying data via API or scraping and reformat it. For scraping approaches see ScrapeMaster.

Single-page apps with client-side routing. Gmail, Notion, Linear, Figma — the URL doesn't match a real HTML document. Print often works but produces the current view only. Extensions that render the DOM handle these better because they capture whatever is on screen, whether it's a "real" page or a JS-rendered view.

There's a fundamental split in how PDFs preserve links, and it matters more than most people realize.

A text-based PDF with clickable links treats each link on the page as an anchor object in the PDF's structure. Click a link in the resulting PDF and it opens the destination URL. The text is searchable, selectable, and copyable. File sizes are small because it's mostly text and vectors.

A screenshot-style PDF — including anything produced by "take a screenshot then export" tools — is a bitmap of what the page looked like. Links are visible but not clickable. Text can't be searched or selected. File sizes are large because it's essentially a photo of every pixel.

Chrome's built-in Ctrl+P produces a text-based PDF with clickable links, which is one thing it gets right. Some full-page capture extensions produce screenshots and call them PDFs; some preserve links properly. Convert: Web to PDF preserves clickable links.

Why it matters:

  • Text-based: You can Cmd+F search inside the PDF, copy quotes for citations, click through to referenced sources, and the file stays small enough to email.
  • Screenshot-style: Nothing above works. You get a picture. Great for visual archives (design portfolios, dashboard snapshots), bad for research reading.

Detailed comparison: Save Webpage as PDF with Clickable Links.

Rule of thumb: if you're going to read, search, or cite from the PDF later, you want clickable links (text-based). If you're archiving a visual moment in time (a live dashboard, an auction listing, a UI state), a screenshot is fine.

Frequently asked questions

How do I save a webpage as a PDF on Chrome?

Press Ctrl+P (Windows/Linux) or Cmd+P (Mac). In the print dialog that opens, click the Destination dropdown at the top and select Save as PDF. Click Save, choose a filename and folder, and Chrome writes the PDF to disk. If the resulting file is cut off, missing images, or missing sections, scroll the whole page to the bottom before pressing Ctrl+P, or use a full-page capture extension like Convert: Web to PDF which handles lazy loading and dynamic content automatically.

How do I save a webpage as a PDF on Mac?

You have two good options on Mac. In Safari, use File > Export as PDF from the menu bar — this saves the page as one continuous PDF with no page breaks in the middle of content. In Chrome, Firefox, or Edge, press Cmd+P, then in the print dialog choose Save as PDF from the destination dropdown (or the PDF dropdown in the bottom-left in Safari's print dialog). Reader mode in Safari, or Firefox's Simplify page toggle, produces cleaner article-only PDFs by stripping ads and navigation.

How do I save a webpage as PDF without cutting off content?

Content gets cut off because Chrome captures the DOM in its current state, and lazy-loaded sections haven't been loaded yet. Two fixes: (1) manually scroll to the bottom of the page and wait for everything to load before pressing Ctrl+P — press End to jump down, wait 3-5 seconds, then Home to jump back up; or (2) install a full-page capture extension like Convert: Web to PDF, which auto-scrolls the page before capture to trigger all lazy loaders. The extension approach also fixes missing background images and web fonts.

How do I save a webpage as a PDF on iPhone?

Open the page in Safari. Tap the Share icon at the bottom of the screen (the square with an arrow pointing up). Scroll down the share sheet and tap Print. On the print preview screen, pinch out on the thumbnail with two fingers to expand it — this converts the preview into a full-screen PDF. From there, tap the Share icon again to save it to Files, email it, or send it to another app. Alternative: on the share sheet, some pages offer Save to Files with a PDF option directly.

Chrome's built-in Ctrl+P > Save as PDF preserves clickable links by default — the resulting PDF treats each hyperlink as an anchor object, so clicking a link in the PDF opens the destination URL. Safari's File > Export as PDF does the same. Where you lose clickable links is with screenshot-based tools that produce a bitmap PDF (essentially a photo of the page). Convert: Web to PDF preserves clickable links while also capturing the full page. See our deeper guide on saving webpages as PDF with clickable links.

Why does my saved PDF have missing images?

Two common causes. First, lazy-loaded images: modern sites use loading="lazy" so images only fetch when scrolled into view. If you print without scrolling, unfetched images show as blanks. Fix by scrolling the whole page first. Second, background images: Chrome disables printing CSS background-image properties by default to save ink. In the print dialog, open More settings and toggle Background graphics ON. If you still get missing images after both fixes, the page is using a print-specific stylesheet that hides them — use a full-page capture extension that bypasses print CSS.

Can I save a login-protected page as a PDF?

Yes, but only using a method that runs in your logged-in browser session. Ctrl+P inside your logged-in Chrome or Safari works fine — you're already authenticated. What doesn't work: pasting the URL into an online PDF converter, because that converter runs on a server that isn't logged in as you. Do not give a random web service your bank or work credentials. Browser extensions run inside your session, so they access exactly what you can see. See Save Webpages Behind Logins as PDF for portal-specific examples.

Bottom line

For most pages, Ctrl+P > Save as PDF is the right answer. It takes 15 seconds, works in every browser, produces a text-based PDF with clickable links, and requires no extra software. The workflow only breaks down on pages with lazy-loaded content, infinite scroll, background images, or dynamic sections that render after page load — which happens to describe most of the modern web.

For those cases, install Convert: Web to PDF. It auto-scrolls the page before capture, keeps background graphics and web fonts, preserves clickable links, and runs entirely locally so nothing leaves your browser. Free, no signup, does one thing well.