Convert PDF to Markdown by dropping the file on this page — the text layer is read in your browser and rebuilt as clean .md: headings from font sizes, bullet and numbered lists, and tables reassembled as pipe tables. Nothing is uploaded. Scanned PDFs without a text layer are not supported (no OCR).
| PDF element | Markdown output |
|---|---|
| Large-font title line | # Heading (level by size ratio, up to ###) |
| Body paragraph lines | Plain paragraphs; paragraph breaks inferred from vertical gaps |
Bullet lines (• glyph) | - item |
1. / 2) lines | Kept as numbered list lines |
| Column-aligned text blocks | Rebuilt as pipe tables: | A | B | with separator row |
| Hyperlinks | Text only — link annotations are not carried into the Markdown |
| Images | Dropped — Markdown output references no image files |
| Scanned page (no text layer) | Skipped with a visible [no selectable text] marker |
A PDF stores positioned glyph runs, not document structure — there is no "heading" or "table" object inside the file. Any "PDF to Markdown converter" is really two steps: extract the text layer (this page uses pdf.js, the same library Firefox's built-in viewer uses), then re-infer structure from font sizes and x/y positions. That's why the limits above exist, and why layout-heavy PDFs need a human pass afterwards.
Say it as "convert pdf to md" or "pdf to markdown" — same job, this page. Drop the file, wait for the output box, then Copy or Download the .md and paste it into your notes app or repo to check how it renders.
Drop your PDF onto the box on this page (or click it and pick the file). The converter reads the PDF text layer in your browser and outputs Markdown — headings, lists and tables included. Free, no account, no limits.
No. The conversion runs entirely in JavaScript inside this tab, using pdf.js served from this site itself. Your PDF never leaves your device and no server sees its contents.
Yes — table blocks are detected by their column layout and rebuilt as Markdown pipe tables with separator rows. Cells that wrap across two visual lines stay in their column but may render as two rows.
No. This tool reads the embedded text layer; a scanned or image-only PDF has no text layer, and no OCR runs here. The converter says so plainly when a file has no selectable text rather than guessing.
Headings are detected from font sizes and become # lines. Inline bold and italics are not preserved — the converter rebuilds structure from layout, not from character style runs.
There is no server-side cap because nothing is uploaded — the practical limit is your device's memory. If a browser tab can load the PDF, this converter can process it.
Opposite direction: Convert Markdown to PDF · HTML to Markdown · Markdown to HTML · Markdown to Word