How PDF to Markdown conversion works
PDF to Markdown conversion on this page reads the text already stored in the file. It does not redraw the page, and it does not OCR a scan. If you cannot drag a selection across the words in a PDF reader, use Scanned PDF to Markdown. If you want a plain .txt file, use PDF to Text.
- Upload one unlocked PDF. Free use covers 3 conversions a day, shared across files and public URLs, for PDFs up to 3 pages and 10 MB.
- DocToMD reads the text layer with MarkItDown and opens a Markdown preview. Clear columns in a simple table can become a pipe table.
- Read the preview. Add heading markers, separate any interleaved columns, and fence code you want to keep as code. Then copy the Markdown or download the .md file.
- If a PDF exceeds the page allowance, the interface can create a shortened copy containing the allowed first pages after explicit confirmation.
Lifetime access includes batch upload up to 10 files per request, and each file counts as one conversion. See lifetime early-bird pricing for plan limits.
What PDF to Markdown keeps
Headings
A heading in a PDF is usually a larger font, not a structural tag the extractor can trust. The words survive when they are selectable, often as their own paragraph. Hash markers such as # and ## are not added from font size or from the PDF outline.
Add those markers before the file goes into Obsidian, Notion, or a chunker. A retrieval pipeline that splits on Markdown headings will treat an unmarked title as body text.
Tables
Simple tables whose cells sit in clear columns can become Markdown pipe tables, including some borderless forms. That is the useful case: a price list, a roster, or a short specification grid you can paste into a doc.
Merged cells, nested tables, and tables that are really pictures do not reconstruct themselves. A two-column paper is not a table. If the preview alternates a sentence from the left column with a sentence from the right, fix the order or start from the publisher HTML before you rely on the text.
Images
The Markdown file contains text. Photos, diagrams, and page scans stay in the PDF. A caption is kept only when that caption is selectable text. Page images are not uploaded to an external model for a description.
If you cannot select the words in a PDF reader, this page will not invent them. Use Scanned PDF to Markdown, where OCR reads the page image. Check numbers and names after OCR.
Code
Source code inside a PDF is stored as positioned text. It comes back as lines of text, not as a fenced code block, and a line-number gutter often lands in the same lines as the source. Indentation survives when the text layer stored it.
Delete the gutter, then wrap the block in fences if you want a code block in GitHub, Obsidian, or Notion. A listing that was set in two columns, or as a screenshot, needs the same review as any other figure.
A verified one-line PDF
A one-page text PDF containing the line "DocToMD fixture".
Verified fixture output | Engine: MarkItDown | Tested: 2026-08-08Preserves: Selectable textKnown limits: Image-only and scanned pages belong to the OCR workflowDocToMD fixture
What a simple table can look like
A one-page memo with a title line and a three-column roster can come back roughly like this when the columns are aligned in the text layer.
Project memo The body text stays in reading order when the PDF has a single column. | Name | Role | Hours | | --- | --- | --- | | Ada | Editor | 12 | | Lin | Research | 8 |Illustrative example. Actual output varies by input and engine.
Where a PDF to Markdown file is useful
Obsidian
A PDF attachment in a vault is hard to link and hard to search. Convert the text layer, put the .md file next to the PDF, and turn the lines you will actually open again into headings and wikilinks. Leave the original PDF embedded under the note when a chart or a figure is the part you still need to see.
Notion
Notion can import a Markdown file. Lists stay lists, and a pipe table that survived conversion becomes a Notion table. Title lines that arrived as plain paragraphs need to be turned into headings after import. This works for a spec, a report, or a meeting packet people will edit. A brochure whose meaning is the layout will not survive as the same design.
LLM and RAG preparation
Chunkers split on blank lines and on Markdown headings. A text PDF you have corrected, with running headers removed and real headings marked, retrieves more reliably than the same file pasted in as a blob. Do that review on the preview before you index anything.
This converter does not call a model, so it will not fill in a paragraph that was never in the text layer, and it will not repair a two-column paper whose lines interleaved. There is no API. A job that has to run overnight belongs on a parser you host or on a parsing API. For a handful of files in one sitting, lifetime access includes batch upload up to 10 files per request, and each file counts as one conversion.
PDF to Markdown compared with other options
The right tool is the one whose failure mode you can check. This page is the no-install path for a text PDF you will read. A local parser or a hosted API is the path when the same job has to run without you.
| Approach | What you set up | What comes through | Use it when |
|---|---|---|---|
| DocToMD in the browser | No install. The free allowance does not require an account. | Selectable text, lists, and simple aligned tables. Heading lines stay text until you mark them. Images stay in the PDF. Code stays text until you fence it. | One PDF, or a small licensed batch, that you are going to read before you keep it. |
| Export text from a PDF app | The reader you already have, offline. | A text dump. Tables, heading levels, images, and code fences are usually gone, and page headers repeat. | You need a paragraph or two and you do not want to upload the file. |
| A local parser you run | A Python environment for something like MarkItDown, Docling, or PyMuPDF. | Depends on the library. Layout-focused tools recover harder tables and reading order, and you can keep the files on a machine you control. | The same conversion has to run unattended across a corpus. |
| A hosted parsing API | An account, a key, and usage or subscription billing. | Often the strongest recovery of tables and reading order. Figure handling depends on that product. | Volume matters, and you accept that another service reads the PDF. |
Named libraries and APIs, including Docling, MarkItDown, LlamaParse, and MinerU, are compared in PDF to Markdown tools for AI workflows.