PDF to Markdown
Convert PDF text, headings and lists into Markdown — runs in your browser, no upload.
Convert PDF text, headings and lists into Markdown — runs in your browser, no upload.
Need clean Markdown from a PDF to paste into ChatGPT, Claude, or a RAG pipeline? PDFree reads your PDF's text and automatically detects headings, bullet lists, numbered lists, bold/italic emphasis, tables, images, and math formulas — then outputs a plain .md file (or a .zip with images/formulas alongside it). Everything runs in your browser. Your document is never uploaded to any server — including PDFree's own — which matters if what you're feeding an AI is internal, unpublished, or otherwise not something you want passing through a third party first.
This tool detects text, headings, lists, tables, figures/images, and inline/display math formulas — the download becomes a .zip with a document.md and an images folder whenever the PDF has extractable images or cropped formulas, or a plain .md when it doesn't. See PDF to Excel for more reliable table extraction, or PDF to Word for a fully editable document. Last verified: August 2026.
Click Choose file or drag your PDF into the drop zone. PDFree reads the page count immediately.
Larger text becomes #/##/### headings, bulleted and numbered lines become Markdown list syntax, and bold/italic text is preserved.
Click Convert to Markdown. A single plain-text .md file downloads immediately.
Bring a PDF report or article into Obsidian, Logseq, or a team wiki as clean, editable Markdown instead of copy-pasting formatted text.
Turn a PDF spec, requirements doc, or exported design document into a starting-point README or docs page.
Jekyll, Hugo, and other static site generators consume Markdown natively — this skips manual reformatting when migrating PDF content to a site.
Markdown's lightweight structure (headings, lists, real tables) gives a language model correct chunk boundaries and reading order — a plain PDF text dump doesn't, since PDF stores glyph positions, not document structure. Math formulas are kept inline as $...$ where they can be flattened correctly, or cropped as a labeled image where they can't (matrices, stacked fractions) — so nothing decays into misleading, silently-wrong text.
Headings, paragraphs, bullet lists, numbered lists, tables, figures, and math formulas are detected automatically and converted to Markdown syntax — figures and cropped formulas come with their images in a .zip, each with descriptive alt text. For complex tables, try PDF to Excel; for a fully editable document, try PDF to Word.
A PDF has no real concept of "paragraph" or "table" internally — it's positioned glyphs on a page. Extracting raw text from a PDF often concatenates columns wrong, merges footnotes into body text, and turns tables into a wall of unaligned numbers. None of that helps a language model, and it actively hurts retrieval quality in a RAG pipeline, where chunk boundaries depend on structure the source format never had.
PDFree's PDF to Markdown detects that structure directly from font size, position, and layout — real #/## headings (not just bigger text), GitHub-flavored Markdown tables (not flattened rows), and math formulas marked as $...$ or cropped as an image with the flattened text kept as alt text — so a text-only consumer still gets a signal, and a vision-capable model reads the image correctly. Everything happens locally, so documents you'd rather not upload to a third party — internal reports, drafts, unpublished research — never have to leave your device just to get AI-ready formatting. We benchmarked the actual output quality against pymupdf4llm, Docling, and Marker on 7 real documents — 91.6/100, within 1.1 points of Docling. Need this in a script or pipeline instead of a browser tab? The same engine also runs as an npm CLI/library or a self-hosted Docker REST API — same local-only processing, no upload, just running on your own machine instead.
Most online PDF-to-Markdown converters upload your document to a remote server to extract the text and send back a file. Whatever is in your PDF — internal notes, a draft, private research — briefly exists on hardware you don't control.
PDFree works differently. Every page is read and structured into Markdown inside your browser using pdf.js, an open-source library — no other library is even needed, since Markdown is just text. Your PDF never leaves your device. No server receives it — not even PDFree's own servers.
| Feature | PDFree | Typical cloud tools |
|---|---|---|
| Where your data goes | Stays on your device | Uploaded to remote servers |
| Headings & lists detected | Yes, automatically | Varies, often plain-text only |
| Sign up required | No | Usually required |
| Daily usage limit | None | Often restricted on free tier |
| Price | Free forever | Free with limits / paid plans |
No. The text is read and structured into Markdown entirely in your browser using pdf.js. Your PDF never leaves your device.
No. PDFree runs entirely in your browser — there is no backend server that receives your files. Because nothing is uploaded, nothing can be stored, logged, or retained. Your document exists only in your browser's memory for the duration of the session and is cleared when you close the tab.
Tables are detected automatically and converted to GitHub-flavored Markdown table syntax. Images/figures are extracted too, and math formulas are marked as $...$ where they can be flattened correctly, or cropped as a labeled image (with the flattened text kept as alt text) where they can't — the download becomes a .zip (document.md + an images folder) whenever the PDF has extractable images or cropped formulas, or a plain .md when it doesn't. If you need more reliable table extraction, use PDF to Excel; for a fully editable document, use PDF to Word.
No. That opt-in toggle downloads a one-time, ~76MB AI model (Texo/FormulaNet) from Hugging Face's CDN so formula recognition can run locally in your browser — the same kind of one-time library download PDFree already does for pdf.js itself. Your PDF is never part of that download and is never uploaded anywhere; only the model's own files move, in the opposite direction, from the CDN to your browser. The feature is off by default, and every formula it recognizes is clearly marked as AI-generated so you can verify it — formulas it can't confidently read fall back to the existing image crop.
PDFree compares each line's font size to the document's typical body-text size. Noticeably larger text becomes a Markdown heading (#, ##, or ### depending on how much larger).
Bulleted lines (•, ◦, ▪ and similar markers) and numbered lines ("1.", "2)") are converted to Markdown list syntax. Letter or roman-numeral lists (a., iv.) are left as plain text, since those markers are too easy to confuse with real content.
Yes. PDFree is completely free — no sign up, no account, no installation. Open the tool, load your PDF, and download the .md file.
Only if the PDF already has a text layer. Scanned, image-only PDFs have no extractable text — run OCR PDF first, then convert the result.
Yes. Markdown gives a language model real structure — headings, lists, GitHub-flavored tables — instead of a flat PDF text dump, which improves both how accurately a model reads the content and how a RAG pipeline chunks it. Math formulas are preserved as $...$ or a labeled image rather than silently decaying into garbled text, and converting locally means the document's content never has to leave your device just to reformat it — useful for internal or unpublished material you're feeding to ChatGPT, Claude, or your own pipeline. Table and formula detection are heuristic-based, so unusually dense or complex layouts may still lose some structure — check the output before relying on it for a table-heavy or formula-heavy document.