HTML to PDF
Internal dashboards. Financial drafts. Contract templates.
Some HTML shouldn't leave your device. Convert it in your browser — nothing uploads.
PDF created — {pageCount} page(s)
Success
Your HTML rendered cleanly. Download below.
PDF created — {pageCount} page(s) — with notes
Success with notes
Conversion completed. See the notes below for details about what may differ from your source HTML.
Conversion notes
Need a vector PDF?
If your HTML uses box-shadow, CSS filters, blend modes, or position: sticky / fixed, those features may not appear in the PDF. For full-fidelity vector output, open the HTML in your browser and use the print dialog: Ctrl/Cmd-P, change destination to "Save as PDF", click Save.
Need a vector PDF?
If your HTML uses box-shadow, CSS filters, blend modes, or position: sticky / fixed, those features may not appear in the PDF. For full-fidelity vector output, open the HTML in your browser and use the print dialog: Ctrl/Cmd-P, change destination to "Save as PDF", click Save.
About converting HTML to PDF
What this tool converts
Two input modes: paste HTML directly into the editor, or upload an .html file. Output is a rasterised PDF — visually faithful but not text-selectable. For vector PDFs with selectable text, use your browser's native print dialog instead (see FAQ).
When to use it
Internal dashboards, financial drafts, contract templates, draft articles, internal documentation — anything where HTML content is sensitive enough that uploading to a third-party converter is the wrong shape.
Privacy framing
Per empirical research, every reachable HTML-to-PDF competitor processes content on their servers (Smallpdf, iLovePDF, PDFCandy, Sejda, PDF24). Adobe ceded the live converter space, redirecting users to Acrobat subscription. The browser-only privacy moat is unoccupied. HTML to PDF runs entirely on your device — markup, fonts, and embedded images stay in your browser.
What we don't handle and why
JavaScript is not executed (security: pasted JS could exfiltrate other tab data). Some CSS features have known rendering gaps: box-shadow, CSS filters, blend modes, position: sticky / fixed. The conversion result will surface notes about which features were affected. For full-fidelity output use the browser print path described in FAQ.
Workflow chain
Combine multiple converted PDFs with Merge PDF. If your source HTML contained <form> elements you'd like to make fillable, use Fill PDF Forms on the converted PDF. Add a password before sharing with Protect PDF.
Frequently asked questions
- What HTML elements are supported?
- Most standard HTML and CSS — anything your browser can render. Headings, paragraphs, lists, tables, images, inline SVG, basic typography, flex and grid layouts all work.
- What's not supported and why?
- html2canvas (the rendering library) does not support box-shadow, CSS filters, blend modes (mix-blend-mode, background-blend-mode), object-fit, position: sticky, position: fixed, or repeating gradients. Iframes and shadow DOM are also skipped. The conversion result surfaces a note when any of these are detected.
- What if my CSS doesn't render correctly?
- Use your browser's native print dialog. Open the HTML in your browser, press Ctrl/Cmd-P, change the destination to "Save as PDF", and click Save. The browser's print path supports the full CSS specification including box-shadow, filters, blend modes, and sticky/fixed positioning.
- Are my HTML files uploaded to your servers?
- No. All conversion runs in your browser via html2canvas and pdf-lib. The HTML never leaves your device. We have no servers receiving the content.
- Can I convert very long HTML?
- Yes — up to 500,000 characters when pasted, or 10 MB when uploaded. The output PDF auto-paginates at A4 page boundaries via fixed-height splits. Text or images on the page-break line may be cut; for precise pagination, use the browser's native print path described above.
- Does it work with Google Fonts?
- Yes, with caveats. We wait up to 5 seconds for web fonts to load before rendering. If the font CDN is slow or blocked, the PDF uses system fallback fonts and surfaces a "Font fallback applied" note in the result.
- What about CORS-blocked images?
- Images hosted on origins without CORS-permissive headers are skipped — the browser can't paint them into a canvas. A note surfaces in the result. Host images on the same origin as the HTML, or embed them inline as data: URIs to bypass.
- Can I convert a webpage by URL?
- Not in v1. Browser security (CORS) prevents fetching arbitrary URLs from client-side code. To convert a webpage, open it in your browser, save it as an HTML file (Ctrl/Cmd-S → "Webpage, Complete"), then upload that file here.