Converts a PDF into Markdown with its structure intact — headings stay headings, lists stay lists, and a table keeps its columns. That is the difference between this and a text dump, and it is the thing that matters when the next reader is a language model. Open the converter — the file is read in your browser and never uploaded.
A PDF has no headings. It has glyphs at coordinates.
This is the whole problem, and it is why most “PDF to Markdown” tools produce something no better than PDF to TXT. There is no heading element in a PDF, no list, no table — only characters placed at x and y positions, with a font size. Concatenate them and you get a wall of paragraphs with .md on the end of the filename, which is a claim about structure that was never recovered.
So this converter infers the structure, and three rules do the work. Each one is conservative on purpose: a heading invented where none exists tells a reader — or a model — that a section starts in the wrong place, which is worse than no heading at all.
Body size is the size covering the most characters, not the most lines. A page of 11pt prose under a 28pt title has to resolve to 11pt, and counting lines gets that right only by luck.
Only a single short line can become a heading. A wrapped paragraph set in a large face is body text set big, not a title.
Lines join into a paragraph only when the previous line reached the right margin. A line that stopped short ended deliberately.
That third rule is not sufficient by itself, and the fixture showed why. A wrapped line ended 371 px into the page; the last line of that same paragraph ended at 354, with the margin at 381. Seventeen pixels apart — no tolerance separates those two reliably. Punctuation does. A line that does not end a sentence almost always wrapped, so the geometry stays strict and the punctuation carries the rest.
Tables are the reason to bother
Everything above is about tidiness. Tables are about not losing data. Here is the same three-column table, converted both ways:
Level Recovery Modules L 7% 21 M 15% 25 Q 25% 29
That is a text dump. It has not merely lost its layout — it has lost which number belongs to which column, and no amount of re-reading recovers it. The Markdown:
Tabular runs are found before the prose and taken out of it, so a table never arrives glued into a sentence.
What the structure costs you, measured
What the page holds
Plain text
Markdown
Difference
Prose only
53 tokens
52 tokens
1.9% cheaper
Headings and lists
57 tokens
60 tokens
+5.3%
A table
35 tokens
59 tokens
+68.6%
All three together
146 tokens
172 tokens
+17.8%
Those are token counts from our own converter, on a PDF we built for the purpose, measured with the same tokeniser the GPT models use. The pattern is the useful part, and it is not the one usually quoted:
On prose, Markdown is free. It came out 1.9% cheaper than the plain-text dump of the same page, because joining wrapped lines back into paragraphs saves about as much as the heading marks cost.
On headings and lists, near enough free — +5.3% for structure a model can navigate.
On tables it is expensive — +68.6%, all of it pipes and the separator row. And it is the one case where you have no choice, because plain text loses which number sits under which heading.
What it cannot do, stated plainly
A scanned PDF has no text layer at all, so there is nothing to convert. The tool says so and points you at OCR rather than handing back an empty file.
Images are not extracted. Markdown can reference an image; it cannot contain one, and there is nowhere for the file to go in a single download.
Multi-column layouts — academic papers, newspapers — are read in reading order by position, which is usually right and sometimes interleaves two columns.
Bold and italic inside a paragraph are not recovered. A PDF records them as a different font, not as emphasis, and guessing wrong mid-sentence is worse than plain text.
Your document is not uploaded
The conversion runs in your browser. That is worth more here than on most conversions, because the documents people prepare for an AI tool are exactly the ones they would rather not hand to a third party first — contracts, board papers, medical letters, anything under an NDA. Nothing is sent anywhere, so there is no copy to delete afterwards.
Frequently Asked Questions
Open the converter, choose PDF as the input and Markdown as the output, and drop your file in. The conversion runs in your browser and the .md file downloads straight away. Headings, lists and tables are recovered from the layout rather than flattened into plain text.
Because a text dump loses the structure. Headings stop being headings, lists stop being lists, and a table becomes a run-on line where you can no longer tell which number sits under which column heading. On prose the two are almost identical — in our measurement the Markdown was actually 1.9% cheaper in tokens. The difference shows up on structured pages.
It depends entirely on what the page holds, and the single averaged number usually quoted is the least useful form of the answer. We measured our own output: prose came out 1.9% cheaper, headings and lists +5.3%, and a table +68.6% — that last one being all pipes and separator rows. A mixed document came to +17.8%. The table case is also the one where you have no real choice, because plain text loses the columns.
No, and it will tell you so rather than returning an empty file. A scan is a picture of a page with no text layer underneath, so there is nothing to read. Run it through OCR first with our Image to Text tool, then convert the result.
No. Markdown can link to an image but cannot contain one, and a single .md download has nowhere to put the image files. If the pictures matter, convert to DOCX instead, which embeds them.
No. The conversion happens in your browser, so the file never leaves your machine. That matters more for this conversion than most, because documents people prepare for an AI tool tend to be the confidential ones — contracts, board papers, anything under an NDA.