HTML to PDF
Convert a saved web page or a text file to PDF.
This tool runs entirely in your browser. Your file is never uploaded, and you can verify that in your browser's network tab. Verify it yourself: open your browser's network tab and watch. You will see one small request asking whether you have tasks left - a tool name and a hash, never the file.
What this does
This takes a saved .html or .htm file, or a plain .txt file, and lays its content out as a PDF. Headings, paragraphs, lists, tables and links are read from the document's structure and re-flowed onto the paper you choose. CSS is not executed, so the result reads correctly and does not look identical to the page in a browser. There is no field for a web address, and that is a decision rather than an omission: fetching a page for you would mean an outbound request from a tool that promises none.
Use it on a page you have already saved: an article kept for offline reading, a receipt or booking confirmation a site would only show you in the browser, documentation you want on paper, or an export from a tool that writes HTML and nothing else.
How it works
- Save the page first. In any desktop browser, press Ctrl+S or Command+S and choose Web page, HTML only - the complete option saves a folder of assets this tool does not need.
- Drop the .html file onto this page. Plain .txt files work too, up to 20 files at a time.
- Choose the paper size, orientation and margins. Wide margins suit anything you intend to annotate by hand.
- Leave keep hyperlinks on so the page's links stay clickable in the PDF.
- Turn on page numbers for anything you plan to print and hand round.
- Press Convert and the PDF downloads.
The page is re-flowed from its structure, not rendered. A browser turns HTML into a picture by executing CSS - float, flex, grid, absolute positioning, media queries, web fonts - and shipping a layout engine into a browser tab to do that a second time is not a small addition. Instead the document is read as headings, paragraphs, lists, tables and links, and set with the same typography as every other conversion here. Two columns become one, and the article you wanted comes out readable.
That trade has a side effect people tend to like. Navigation, banners and sidebars are flattened into the flow along with everything else, so they arrive as plain lists and paragraphs rather than as furniture down the edge of the page. This is not reader-mode extraction and does not claim to be - text that was decoration is still text - but the article stops being a narrow column squeezed between two others.
Images are not embedded. A saved .html file usually points at its pictures rather than containing them, and going out to fetch them would be exactly the outbound request this tool exists to avoid. Text, tables, lists and links come through; pictures do not, including ones written into the file as data URIs. If the pictures are the point, save them separately and use Images to PDF.
The file is treated as hostile. A saved web page can carry script tags, inline event handlers and javascript: links, and all three are stripped in the parser before anything reaches the layout engine. Nothing in the page runs, and no link that ends up in the PDF can execute anything.
The missing URL box is worth one more sentence. To fetch a page for you, this site would have to make the request itself or route it through a proxy, and either way somebody's server learns which page you were reading. For a tool whose whole claim is that your document never leaves your device, that is not a trade worth making. Saving the page yourself takes one keystroke and keeps the request in your own browser, where it already was.
What this tool cannot do
- CSS is not executed, so colours, columns, positioning and web fonts are lost. The page is re-flowed as text, tables and lists.
- There is no URL field. Save the page to a file first; fetching it here would mean an outbound request on your behalf.
- Images are not embedded, including ones written into the file as data URIs. Text, tables and links come through.
Questions people ask
- Can I paste a web address instead of a file?
- No, and it is a deliberate omission rather than a feature nobody got round to. Fetching the page would mean this site, or a CORS proxy in the middle, making a request on your behalf - which would tell somebody's server which page you were reading and would break the one promise this tool makes. Save the page with Ctrl+S and drop the file here instead.
- Why does the PDF not look like the web page?
- Because stylesheets are not executed. The document's structure is read - headings, paragraphs, lists, tables, links - and laid out with this site's own typography instead. Colours, columns, positioning and web fonts do not carry across. What you are left with is the page's content, readable, on paper you chose.
- Do the pictures on the page come through?
- No. Images are not embedded, because a saved .html file normally references its pictures rather than containing them, and fetching them would mean an outbound request. Text, tables, lists and links all convert; pictures are left out, including ones written into the file as data URIs.
- How do I save a web page so I can convert it?
- Press Ctrl+S on Windows or Command+S on a Mac and choose Web page, HTML only rather than Complete - the complete option writes a folder of assets this tool has no use for. On a phone, look for a save-as-file or download option in your browser's share menu. Then drop the saved file onto this page.
- Does anything about the page get sent anywhere?
- No. The file is decoded, parsed and laid out entirely inside your browser, and there is no URL field precisely so that no request is ever made on your behalf. What the page fetches is the Noto font, from this site's own origin, and only when Unicode embedding is switched on, alongside the small request that asks whether you have tasks left.