PDF to Markdown converter

Drop a PDF and get clean Markdown: headings, lists, tables, and scans read with OCR. Everything runs in this browser tab, so your files never leave your device.

How to convert a PDF to Markdown

  1. Drop your PDF on the box above, paste it, or choose up to 20 files at once.
  2. Wait a moment. A text PDF converts in a second or two. Scanned pages take longer, because each one is read with OCR on your device.
  3. Check the result. The Markdown tab shows the source, Preview shows it rendered, and Pages to check lists any page that may need a second look.
  4. Copy or download. Take the text as a .md file, as a .zip with the images beside it, or as JSONL chunks for a RAG pipeline.

No account, no upload, no limit on how many files you convert in a day.

What the converter keeps

The converter reads the PDF's text layer: the actual characters, with their font sizes and positions. From that it rebuilds the document's structure:

  • Headings from font size and weight, as #, ## and ###.
  • Paragraphs joined back together, even when a sentence runs over a line break or onto the next page.
  • Lists, numbered and bulleted, and links with their addresses.
  • Tables as Markdown tables, from ruled lines or from columns of aligned text.
  • Images as placeholders, as links to extracted image files, or left out. You pick.

It also removes what a reader doesn't need: page numbers, running headers and footers repeated on every page, and words split by a hyphen at the end of a line. Each repair has its own switch, and each switch shows how many times it fired, so nothing happens behind your back.

Pages worth a second look

No converter gets every page right. Instead of hoping, this one tells you where to look. After each conversion it checks every page for the usual trouble:

  • a page with no text layer, or one whose fonts map to the wrong characters, which reads as gibberish;
  • text the OCR model wasn't sure about;
  • tables and multi-column layouts, where reading order can go wrong.

Flagged pages appear under Pages to check, each with a picture of the page next to its Markdown, so you can compare them in seconds. If a page's text came out garbled, one click reads that page again with OCR.

Scanned PDFs and OCR

When a page has no text, only a picture of text, the converter reads it with OCR. The text recognition model (PaddleOCR, Apache 2.0) runs in your browser through WebAssembly, on several threads when your browser allows it. It downloads once, about 6 MB, and then stays cached.

OCR reads printed Latin-script languages and Chinese out of the box. Japanese and Korean have their own models, which you can pick under Scanned pages. Handwriting isn't supported. For more on scans, see scanned PDF to Markdown.

Markdown for ChatGPT, Claude and RAG

Markdown is the format language models read best: headings and tables survive, and it costs fewer tokens than HTML or the raw PDF. The converter counts tokens on exactly what you'll copy, and the switches under Trim for LLMs show what each one saves: dropping link addresses, bold and italic markers, or image lines.

The Chunks tab splits the document at headings under a token budget you set, keeps each chunk's heading path and page numbers, and downloads the lot as JSONL. More in PDF to Markdown for LLMs.

Is it private?

Yes, by design rather than by promise. The converter is a program that runs in your browser tab. Your PDF is read from your disk into the tab's memory and converted there. It is never sent to our server or anyone else's, which is also why there's no file size charge and no daily limit.

What does go over the network: the page itself, the converter's code, and the OCR model the first time you convert a scan. You can check this in your browser's developer tools: no request carries your file. The privacy policy has the details.

Limits

  • File size: up to 300 MB per file, 20 files at a time. Very large files can run out of memory in one tab; convert a page range if that happens.
  • Formulas come out as the text characters the PDF holds, not as LaTeX.
  • Complex tables with merged cells or cells that wrap across lines may need fixing by hand. Those pages are flagged.
  • Scanned tables become Markdown tables when their columns line up clearly; crowded or skewed ones may come out as lines of text.
  • Password-protected PDFs open once you enter the password. It stays in the tab.

Frequently asked questions

Is pdftomd free?

Yes. Converting in your browser costs us nothing per file, so there's nothing to charge for: no signup, no watermark, no daily cap.

Does it work on a phone?

Yes, in any current mobile browser. Big files and long scans are slower on a phone than on a laptop, and a phone has less memory, so very large PDFs may need a page range.

Can it convert several PDFs at once?

Yes. Drop up to 20 files; they convert one after another, and Download all packs every Markdown file, with images if you chose to extract them, into one .zip.

Which Markdown does it produce?

CommonMark with GitHub-style tables, which GitHub, Obsidian, Notion, VS Code and most static site generators read. For Obsidian there's an option for YAML front matter; see PDF to Obsidian.

Can I convert PDF to Markdown with code?

If you need it in a script, see PDF to Markdown in Python for four libraries with working examples, or our benchmark to see how they compare.