PDF → Markdown

Get the text out of a PDF.
As Markdown, not a mess.

A PDF has no headings — it has instructions for painting glyphs at coordinates.

So we rebuild the structure from font size and spacing. Honest about where that guesses.

Drop a file here.

Or pick one with the button. Or just paste with Ctrl+V. Dozens at a time is fine.

.pdf / 25 MB per file / runs in your browser, nothing uploaded

Other formats: .docx .doc DOCX → MD · .xlsx Excel → MD · .csv .tsv .txt CSV → MD · .html .htm HTML → MD · .pptx .ppt .odp PPTX → MD

Knobs
Bullets
Page marks

How it works

  1. 01Drop a PDF onto the box above. It's parsed with Mozilla's pdf.js, and both the library and its fonts are served from this site — nothing is fetched from a CDN.
  2. 02Text is pulled page by page in reading order. Font size decides what's a heading; vertical gaps decide where paragraphs break; small type at the top or bottom of a page is treated as a header or footer and dropped.
  3. 03Turn on page marks if you want an HTML comment between pages. Then copy the Markdown or download the .md.

What's supported

  • Any PDF with a real text layer — exported from Word, LaTeX, Pages, a browser's Print to PDF
  • Chinese, Japanese and Korean text, via the CMap tables bundled with this site
  • Headings inferred from font size, in three relative levels
  • Bulleted and numbered lists spotted from their leading characters
  • Words hyphenated across a line break, rejoined into one word
  • Optional page separator markers, and up to 500 pages per file

What it won't do

  • Scanned PDFs produce nothing. If no text is found you'll be told the file is probably a scan.
  • No OCR. Reading pictures of text needs a different tool entirely.
  • Multi-column layouts, complex tables and formulas are best-effort at most
  • Password-protected and encrypted PDFs are refused — there's nowhere here to type a password
  • Images, colours and exact positioning are gone; Markdown has no way to hold them
  • Files over 25 MB, or documents over 500 pages

Questions people ask

Because there's nothing to extract. A scan is a photograph of a page — the letters are pixels, not characters. Reading them needs OCR, which this tool doesn't do, and we'd rather say so than hand you an empty file with no explanation.