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
- 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.
- 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.
- 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.