PDFNinja

PDF → HTML

Advanced extraction · Pixel-accurate or semantic output

Multi-columnSuperscriptList detectionHeader/footer removalCMYK/RGB/GrayMerged table cellsForm widgetsDark/Sepia themes

Drop your PDF here

or

Pixel-accurate
Smart tables
Multi-column
7-stage extraction pipeline
01Operator List Parsing

Every path, colour change (RGB/CMYK/gray/transparent) and CTM matrix transform is traced with full graphics state stack.

02Text Colour Tracking

showText operators are intercepted; the active fill colour at that exact point becomes the text colour — per character.

03Border Table Detection

H/V lines are clustered into a grid. Missing interior segments are detected and output as colspan/rowspan.

04Multi-Column Detection

X-density histogram analysis detects multi-column layouts. Semantic output correctly flows text per column.

05List & Paragraph Detection

Bullet characters and numbered patterns are detected. Line spacing analysis groups lines into paragraphs.

06Superscript & Subscript

Sub/superscript text is detected by font size and Y-position and rendered with correct HTML sup/sub tags.

07Dual Layout Modes

Positioned: pixel-exact absolute layout. Semantic: headings, paragraphs, lists — clean, accessible, responsive HTML.

100% Private

Parsing runs in your browser via PDF.js. Nothing uploaded, ever.

Free forever

No signup, no page cap, no watermark on the HTML.

Clean markup

Semantic mode emits headings, paragraphs, lists and tables — no inline junk.

Frequently Asked Questions

Semantic or positioned — which do I want?

Use semantic when you want reflowable, accessible HTML for a website or content system. Use positioned when you need the visual layout preserved to the pixel — good for archival or side-by-side comparison.

Does it work on scanned PDFs?

Only if they already have a text layer. For pure image scans, run our Searchable PDF (OCR) tool first.

How are columns detected?

We build an x-density histogram of every text run and find the vertical gaps between clusters. Those gaps mark column boundaries and each column is flowed independently.

What about tables?

Border-based tables are detected by clustering horizontal and vertical lines into a grid. Rules-less tables fall back to spaced-cell heuristics inside paragraphs.

Can I self-host the output?

Yes — everything is embedded in a single .html file with inline CSS. Drop it anywhere: static host, CDN, or an email.

Related Tools