🌐
PDF/PDF to HTML

PDF to HTML

Convert PDF text into clean semantic HTML — h1/h2/h3 from font sizes, real lists, escape-safe output. 100% in-browser.

100% LOCALSemantic h1/h2/h3Real listsPage rangeSandboxed preview
Saved Presets· Auto-save on
The CalculatorPage 1
🌐
Drop a PDF here, or click to browse
Text-based PDFs (scanned pages need OCR first)
Pagesto

Drop a text-based PDF and convert it to semantic HTML

Data Source & Legal Disclaimer
Effective: 2026Last updated: TodayUpdate: Manual review
Sources: pdfjs-dist text layer

HTML conversion runs entirely in your browser with pdf.js. Your file is never uploaded. Works on PDFs with embedded text — scanned pages need OCR.

See all data sources & update policy →
How it worksPage 2

Why semantic HTML beats a wall of <div>s

Many "PDF to HTML" converters dump every text fragment into absolutely-positioned <div> wrappers — pixel-faithful but unreadable, unsearchable, and unusable in a CMS. This converter takes the opposite trade: it rebuilds document structure from the text layer. Font height relative to each page's median decides heading level (≥1.6× → h1, ≥1.3× → h2, ≥1.15× → h3, ≤0.75× → italic em), bullet glyphs become real <ul> lists, numbered lines become <ol>, and every fragment is HTML-escaped so stray < or & from the source never breaks your page. The full-document mode wraps everything in a minimal, valid HTML5 skeleton with a small inline stylesheet — ready to publish or paste into any editor.

Text items → lines → size-ratio tags → semantic HTML
PDF text layerpositioned glyphsextracted by pdf.jsLines vs medianfont-size ratio per linebullets & numbers detectedSemantic tagsh1 · h2 · h3ul · ol · p · emescaped text.html filevalid HTML5or fragmentscanned PDFs have no text layer — run PDF OCR first

The same font-size heuristics as the Markdown converter, mapped to HTML tags.

Migrating a product manual into the CMS — Priya's conversion

Priya maintains a 40-page hardware manual that must live on the company website, and the CMS only accepts HTML.

  1. Convert:She drops the manual; the 14 pt chapter titles land at 1.6× the 9 pt body median and become h1, the 11.5 pt sections become h2, and the parts list renders as a real ol with 86 items
  2. Inspect:The preview shows escaped ampersands from the SKU column (&amp;) — exactly what a raw paste would have corrupted
  3. Choose the mode:She keeps full-document mode: the output includes the viewport meta and a tiny stylesheet, so opening the file directly looks presentable for review
  4. Publish:manual.html downloads and the CMS import preserves every heading for the auto-generated table of contents