PDF to Markdown
Runs in your browserTurn PDFs into clean markdown — headings, lists, and paragraphs detected automatically.
How It Works
Upload PDF
Drop any text-based PDF: reports, papers, articles, docs.
Auto-Format
Heading sizes become # ## ###. Bullets and numbered lists preserved. Pages separated by ---.
Copy or Save
Paste into Notion, Obsidian, GitHub, or save as .md.
Frequently Asked Questions
How does it detect headings?
By font size. Text meaningfully larger than the body becomes H1, H2, or H3 depending on how much bigger. Works well for most design patterns.
Does it handle bulleted and numbered lists?
Yes. Lines starting with •, ●, -, *, or a number followed by a period/paren become proper markdown list items.
What about tables?
Tables are extracted as text, not markdown table syntax — that's a separate heuristic we're considering adding. For now expect row-by-row text output you may need to reformat.
Why do I see --- between sections?
Those are page breaks. Markdown preserves the original page boundaries so you can see where the PDF transitions.
Is this better than copy-pasting from a PDF viewer?
Yes. Direct copy-paste often mangles line breaks, skips headers/footers, and loses reading order. This runs pdf.js's reading-order heuristics plus our markdown formatting on top.
Is my PDF uploaded?
Never. All extraction and formatting happen client-side.