Your files stay on your device

HTML to PDF: Sanitized Authoring, pdf.js-Verified

Author a PDF from HTML in your browser: sanitized input, real paged rendering, bundled fonts, every output reopened with pdf.js before download.

HTML in
up to 2 MB HTML · 512 KB CSS
Page geometry
Document options

PDF/UA modes validate the document. They require a title, so turn metadata on and set one.

Fonts, images, attachments
WOFF2/WOFF/TTF/OTF as bytes, set the family name your CSS references.
Reference them in the HTML as <img src="./name.png">. Resolved from the bundle, never fetched.
Up to 20 files show in the viewer's attachment panel.
bundled: Nunito (latin), Nunito (latin-ext), JetBrains Mono (latin), JetBrains Mono (latin-ext) · local fonts up to 6 x 10 MB
Limits stated before any render
  • Scripts never run; style elements and remote stylesheets are stripped and counted.
  • CSS is a document-oriented subset, not Chromium; @page, blur, drop-shadow, and backdrop-filter are out.
  • Remote assets are never fetched, images survive as data URLs or user-bundled refs; GIF images are refused.
  • Fonts ship as bundled Latin/Latin-ext bytes ([email protected]); a glyph no registered font covers fails the render with the char and codepoint.
  • Every output is reopened with pdf.js. Page count and page size must match or no file is offered.
  • Complex webpage capture is not supported: this is document authoring, not a site printer.
Nothing in yet

Paste, drop, or type to begin. Everything stays on this device.

paste HTML, pick options, render