pdftoolskit.org
PDF (Portable Document Format) utilities, in the browser
Say hi →

HTML → PDF

paste HTML, or drop .html files for batch conversion

Paste a snippet of HTML or drop one or more .html files and the tool rasterises each into a printable PDF using html2canvas + jsPDF.

Drop .html files here for batch conversion

One PDF output per .html file

    no files
    Ready.

    When to use this tool

    Convert HTML you have to a PDF — pasted snippet, an exported article, an HTML invoice, a printable receipt. The output is a rasterised PDF (text isn't selectable) but it's visual-fidelity to how the HTML renders in a browser. Good for "I want a printable copy of this page."

    Step by step

    1. Paste HTML into the textarea, or drop one or more .html files into the drop zone for batch conversion.
    2. Pick page size and orientation. A4 portrait is a good default for most documents.
    3. Set margin (default 20 pt). Set to 0 for full-bleed conversion.
    4. Click "Render & download". Pasted HTML produces document.pdf; dropped files keep their original stems.

    Common use cases

    Common mistakes

    FAQ

    Why is the text in the PDF not selectable?

    Because the conversion goes HTML → bitmap → PDF (image). True HTML→PDF that preserves text requires a real headless browser (Puppeteer / wkhtmltopdf), which doesn't run in a browser tab. We accept the trade-off for the "no server" guarantee.

    Can I convert a URL directly?

    Not yet — paste the page's HTML or save the page as a .html file and drop it. URL fetching would need to bypass CORS, which would require a backend.

    Does it handle long content?

    Yes — the rendered bitmap is split across multiple PDF pages. Very long content (1000s of pixels tall) takes longer to render and produces a larger file.

    What fonts does it use?

    Whatever fonts your browser has loaded for the rendered HTML. If the HTML references a Google Font, html2canvas captures it as part of the rendered bitmap.

    Why are emojis missing or broken?

    Emoji rendering in html2canvas can be flaky — it depends on the system font. As a workaround, swap emojis for inline SVG or Twemoji-style images.