All essentials

Drop a saved web page — the .html plus its folder, or a single .mhtml — and I'll set it up to print.

Free tool

HTML to PDF

Turn a saved web page into a PDF whose text is still text. Drop the .html and the folder saved beside it, or a single .mhtml, and the page is rebuilt with its own images and stylesheets, stripped of anything that runs, and set on the paper size you choose.

Drop the saved page here — the .html and its folder, or a single .mhtml

.html, .htm and .mhtml, with the images and stylesheets saved beside them · stays in your browser

Preview — this is what prints

Nothing loaded yet.

The page setup

Paper

Orientation

Margin

Why a print dialog

Your browser’s own print engine is the renderer here, and it writes real text rather than a picture of the page — so the PDF is searchable, and the other tools on this page can stamp and number it afterwards. Choose Save as PDF as the destination.

Good to know

  • Save the page first — File → Save Page As in any browser. “Webpage, Complete” writes an .html plus a folder; drop both. “Single File” writes one .mhtml; drop that.
  • This is the one tool here that finishes in your browser’s print dialog rather than with a download — that is what makes the text in the PDF real text, searchable and stampable, instead of a picture of the page.
  • Scripts and embedded frames are removed before anything is drawn, so a page from anywhere is safe to open. A page that built itself with JavaScript prints as it was saved.

Your files stay on your machine

This tool runs entirely inside your browser tab. Nothing is uploaded, stored, or sent to a server — close the tab and every trace is gone.

These are the free ones — see the full suite

How big a file can it take?

There is no upload, so there is no upload limit — but the work happens in this tab, which means your browser’s memory is the budget. Nothing here will refuse a file for being large; a big enough one simply gets slow and, eventually, reloads the tab. The figures below are rules of thumb on a desktop browser, not enforced caps. On a phone or tablet, expect a good deal less.

  • The whole page is held as a document and rendered at once, so it is page weight rather than page count that binds — comfortable to roughly 50 MB of HTML and assets together.
  • Every image is inlined before rendering, so a photo-heavy page costs far more than a long one made of text; a folder of a few hundred assets is fine.

Password-protected PDFs are declined whatever their size — unlock the file first. If a run does die on a long document, splitting it into volumes and working through them one at a time is the reliable way round it.

Built on open source

The Essentials tools do their work in your browser using these open-source libraries, used under the licenses below. Each remains the copyright of its authors.

  • pdf-libMIT · creates and edits the PDFs you download
  • pdf.jsApache-2.0 · reads your PDF and renders the page previews
  • SheetJS (xlsx)Apache-2.0 · reads Excel workbooks — .xlsx, .xls, .xlsb and .ods
  • hyparquetMIT · reads Apache Parquet files
  • hyparquet-compressorsMIT · the Parquet codecs beyond Snappy — Gzip, Zstd, Brotli, LZ4
  • JSZipMIT · bundles multi-file results into one ZIP
  • LucideISC · the icons throughout these tools
  • ReactMIT · the interface itself
  • Next.jsMIT · builds and serves these pages

pdf.js ships fallback fonts contributed by Foxit Software, redistributed here as part of pdf.js. JSZip is dual-licensed; it is used here under the MIT license.