How to Save a Web Page as a PDF (Two Ways, and When Each One Breaks)
Everyone already has a way to save a web page as a PDF — it is built into every browser, free, and takes about ten seconds. It also mangles a surprising number of pages: tables split awkwardly across pages, a sidebar eats half the content, or a chunk of the article is simply missing. Here is the quick method, why it sometimes fails, and the more reliable way to do it when it does.
Method 1: your browser's built-in Print to PDF
This is the fastest option and, for most ordinary articles, a perfectly good one.
- Open the page you want to save.
- Press Ctrl+P (Cmd+P on a Mac) to open the print dialog.
- Change the destination from your printer to Save as PDF (or Microsoft Print to PDF on Windows).
- Adjust margins and “Background graphics” if the preview looks off, then save.
This works by handing the page to your browser's print engine, which applies its own print stylesheet — the same one that would have run if you'd sent the page to an actual printer. That is exactly why it sometimes goes wrong.
Why it falls apart on certain pages
Three things commonly break this method, and none of them are your fault:
- Sites ship a separate print stylesheet that hides or rearranges content specifically for printing — sometimes it drops a table, a chart, or an entire section nobody remembered to test.
- Fixed-width layouts and sidebars do not reflow for a printed page, so content gets cut off at the right edge instead of wrapping.
- Content loaded by JavaScript after the page appears — comments, expanded sections, some embeds — may or may not be there depending on exactly when you hit print, which makes the result inconsistent between attempts.
If the browser's version looks right in the print preview, use it — there is no reason to reach for anything else. This matters when the preview looks wrong and changing browser settings does not fix it.
Method 2: save the HTML, then convert it with full control
This method trades one extra step for something the print dialog does not give you: you get to see and, if needed, edit the actual markup before it becomes a PDF, rather than trusting whatever print stylesheet the site happens to ship.
- Get the page's HTML. Right-click the page and choose View Page Source (or press Ctrl+U), then copy everything — or use your browser's Save Page As → Webpage, HTML Only to save it as a file.
- Open HTML to PDF.
- Paste the source, or upload the saved .html file.
- Pick a paper size and margin, then convert. If a table or section is cut off awkwardly, you can edit the pasted markup directly — add a
page-break-before: alwaysrule at the point you want a new page to start — and convert again.
This is not a live-URL fetch — the tool renders the HTML and CSS you give it rather than reaching out to the address itself. That is a deliberate limit worth being upfront about: it means JavaScript-generated content will not appear, exactly the same way it would not appear if you disabled scripts and reloaded the page. For an article, a saved invoice template, or a page that is mostly static markup, this makes no difference at all — the words and structure are already in the HTML you copied.
Which method should you actually use
- Use Print to PDF for a quick, one-off save of an article or receipt, when the print preview already looks correct.
- Use the HTML route when the print version cuts something off, when you want to control exactly where pages break, or when you already have the HTML — a saved email, an exported document, a template someone sent you — rather than a live page at all.
Fixing the most common problem: an awkward page break
This is the single biggest reason people give up on a browser's print output and go looking for something else. A table's header row ends up alone at the bottom of one page while every row sits on the next, or a heading is stranded with none of its paragraph underneath.
A print stylesheet has no idea where you'd like the page to break — it just flows content until the page is full and starts a new one. When you're working from the HTML directly, you control this with a single CSS rule:
Add page-break-before: always; to a heading or a <div> right before the section you want to start a fresh page, or page-break-inside: avoid; on a table or box you don't want split across two pages. Paste the changed HTML back into HTML to PDF and convert again — there's no limit on how many times you adjust and re-run it.
If the page uses columns, a sidebar, or a fixed width
Two-column blog layouts and sites with a persistent sidebar are the other common failure — the printed version either squeezes everything into a narrow strip or cuts the sidebar's content off the edge of the page entirely. A page built for a 1200-pixel browser window does not automatically know how to fit onto an 8.5-inch sheet of paper; something has to give, and left to its own devices a browser's print engine sometimes chooses to clip rather than reflow.
When working from the HTML, the fix is to add a small style block that overrides the layout for print — for example, setting the main content to full width and hiding the sidebar with display:none. You are not limited to whatever print rules the original site happened to ship; you can write your own before converting, and re-run the conversion as many times as it takes to get the layout right.
Why images sometimes go missing
A page's HTML normally references its images by address rather than containing them — either a full remote URL, or a path that only means something alongside the original page's other saved files. Neither resolves on its own here: this tool never fetches a remote address (deliberately — it makes no outbound request on your behalf at all, which is also exactly why there's no live-URL mode), and a bare relative path like images/photo.jpg means nothing once it's separated from the folder it came from.
The one way to guarantee an image survives the trip is to embed it directly in the HTML as a data URI — the image's own bytes, encoded as text, sitting inside the src attribute instead of pointing outward. It looks unwieldy (a long string starting data:image/png;base64,...) but it renders exactly like a normal image once converted, with nothing left dangling outside the file. For most of what people convert this way — invoice templates, reports, saved articles — the value is in the text, headings and tables rather than embedded photos, so this rarely ends up mattering in practice.
When you already have the HTML, not a live page
Not everyone starts from a URL. A common case: someone emails you an HTML export of a report, a template, or a newsletter draft, and you need it as a document you can send onward, print, or archive — not something you can print from a browser tab at all until you open the file. Upload it directly to HTML to PDF the same way, no browser round-trip needed.
What stays intact either way
Both methods preserve the things people actually care about: the text, headings, tables, images, links and the CSS styling — fonts, colors, spacing, borders. Neither method invents content that was not on the page, and neither one runs anything you did not ask it to.
Try it now
HTML to PDF is free, needs no sign-up, and your file is never stored.
FAQ
- What's the fastest way to save a web page as a PDF?
- Ctrl+P (or Cmd+P), then choose Save as PDF as the destination. It takes about ten seconds and is fine for most ordinary pages — use it first and only look for an alternative if the result looks wrong.
- Why does my browser's PDF cut off part of the page?
- Most sites ship a separate print stylesheet that reflows or hides content specifically for printing, and it does not always account for every layout — tables, sidebars and multi-column sections are the usual casualties.
- Can I convert a live web page by just pasting its URL?
- Not with this tool — it works from HTML you paste or upload, not a live address. Save the page's HTML first (View Page Source, or your browser's Save Page As), then paste or upload that.
- Does converting from HTML run the page's JavaScript?
- No. It renders HTML and CSS only, the same way the page would look with scripts disabled. For a mostly static page — an article, an invoice, an exported document — this makes no practical difference.
- How do I stop a table from splitting across two pages?
- Add a page-break-inside: avoid; CSS rule to the table (or its wrapping element) in the HTML before converting. You can edit and re-convert as many times as you need.
- Is there a file size or page limit?
- Up to 2MB of HTML per conversion and a 300-page output cap — far beyond what a normal page or document needs.
- Do I need an account?
- No. Converting HTML to PDF is free with no sign-up and no watermark.
- Is my HTML kept anywhere?
- No. It's rendered and discarded the instant your download is ready — nothing is stored or seen by anyone else.