HTML to PDF

Turn a web page or HTML into a PDF document.

or drop PDF here

Runs in your browser — your file never leaves your device.

Turn an HTML file, or a public web page, into a PDF. Styles inside the document are kept and scripts are removed for safety, so you get the page as it is designed to look rather than as it would behave. A page address can be converted directly without downloading anything first — though anything the page builds with its own JavaScript will not appear, because scripts are never run.

How to use HTML to PDF

  1. For a file, click "Select HTML file" and choose the .html. For a web page, use the "or convert a web page" box beneath the drop zone, paste the address and press Convert.
  2. Click "Convert to PDF" and wait while the document is rendered.
  3. Download the PDF and check the first page — if a page relied on a framework to build its content, you will see the empty shell here and know why.

Who it is for

HTML to PDF is for keeping a web page as it looked: a receipt from an online order, an article you want to read later, a confirmation page that disappears once you close the tab, or internal documentation that only exists as a page. It is also used to turn a local .html file into something shareable without sending a folder of assets.

How it works

  • Styles inside the document are kept, and the page is rendered into PDF pages rather than saved as a screenshot, so text stays selectable.
  • Scripts, event handlers and dangerous embeds are stripped before rendering. Nothing runs, which is what makes it safe to convert a page you do not control.
  • A public URL can be fetched by our server — a browser cannot read another site's HTML directly — and then converted the same way.

What it cannot do

  • Pages that build their content with JavaScript convert as an empty shell, because scripts are never executed. Articles, documentation and most blogs are fine; app-like pages are not.
  • Remote images load only if their server allows it. An image behind hotlink protection will not appear.
  • A page behind a login cannot be fetched, because the request carries no session. Save the page from your browser and convert the file instead.
  • Complex responsive layouts are laid out at print width, so the result can differ from what you see on a wide screen.

Frequently asked questions

Why is a web page missing its content?

Because scripts are never executed. Many modern pages build their content with JavaScript after loading, so fetching the HTML alone gives you the shell. Pages that serve their content in the HTML itself — articles, documentation, most blogs — convert correctly.

Are images and styles included?

Styles inside the file are kept. Images load only if their server allows it, so an image behind hotlink protection will not appear, and a font referenced from another domain may fall back to a standard face.

Is it safe to convert a page I do not control?

The HTML is sanitised before rendering, so scripts, event handlers and dangerous embeds are stripped. Nothing runs — which is exactly why the output is a static rendering rather than an interactive copy.

Can I convert a page that needs a login?

No. Only public pages can be fetched, so a page behind a login returns the sign-in form rather than the content. Save the page from your browser and convert the file instead.

Is my file uploaded?

An HTML file is rendered in your browser, so it never leaves your device. A web address is fetched by our server, because a browser cannot read another site's HTML across origins — and that page is public by definition.