What this tool does
- Three ways in — paste HTML, type it with a live preview, or upload an .html file
- Your CSS works — inline styles and
<style>blocks are honoured, because the markup is rendered by the browser itself - Page setup — A4 or Letter, portrait or landscape, adjustable margins and scale
- Multi-page — content taller than one page flows onto the next
- Live preview — the rendered page beside the markup, at the real output width
Why convert HTML to PDF
- Turn an email template or newsletter into a PDF proof for sign-off
- Produce an invoice or receipt PDF from a template you already have as HTML
- Archive a page of documentation or a report in a fixed format
- Check how a layout paginates before you send it to print
A note on fetching live URLs
This tool converts markup you supply, not an arbitrary web address. That is not an arbitrary limit — browsers enforce the same-origin policy, so a page served from this domain simply cannot read the HTML of another site. Any converter that does accept a URL is fetching it on a server, which means it, not you, is the one visiting the page.
To convert a page you are looking at: open its source (Ctrl+U), copy the markup and paste it here — or, for most pages, just use your browser's own Print → Save as PDF, which is purpose-built for exactly that.
Frequently asked questions
Is my HTML uploaded anywhere?
No — it is rendered in a sandboxed element on this page and captured to PDF locally. Nothing is sent to a server.
Can I just give it a URL?
No, and no in-browser tool can — the same-origin policy forbids reading another site's HTML. Paste the markup, or use your browser's Print to PDF for a live page.
Do external images and web fonts load?
They do if the host allows cross-origin access, which many CDNs do and many sites do not. Embedding images as data: URIs always works.
Will JavaScript in my HTML run?
No — scripts are stripped before rendering, for obvious safety reasons. Convert the final markup rather than markup that builds itself.
How are page breaks decided?
The rendered content is sliced at the page height. Keep an eye on the preview if a table or heading is landing awkwardly across a break.