Convert PDF to Markdown

Drop a PDF and get structured Markdown back in seconds. The converter reads font sizes and text positions to rebuild headings, paragraphs, lists and tables, rather than dumping the page out as flat text. Everything runs inside your browser, so the file never reaches a server.

How do I convert a PDF to Markdown?

Drop your PDF onto the converter on this page. It reads the document in your browser and returns GitHub Flavored Markdown in a few seconds, which you can edit, copy, or download as a .md file.

Is PDF to Markdown conversion free and private?

Yes. My PDF 2 MD is free with no sign-up, and the conversion runs entirely in your browser using PDF.js. Your document is never uploaded, stored, or transmitted to any server, including ours.

Drop your PDF here

or choose a file from your computer

PDF only · up to 50 MB

How to convert a PDF to Markdown

  1. 1

    Open the converter

    Go to mypdf2md.com. Nothing to install and no account to create.

  2. 2

    Add your PDF

    Drag the file onto the drop zone, or click to pick it from your computer. Files up to 50 MB are accepted.

  3. 3

    Review the Markdown

    The converted Markdown appears alongside a live preview. Edit it directly if a heading or table needs a nudge.

  4. 4

    Copy or download

    Copy the Markdown to your clipboard, or download it as a .md file ready for your editor or repository.

What the converter reconstructs

A PDF does not store a heading, a list, or a table. It stores glyphs at coordinates on a page. Everything structural has to be inferred back out of that geometry, which is why so many PDF-to-text tools return an undifferentiated wall of text.

This converter measures the most common font height in your document and treats it as the body text baseline, then classifies everything relative to it.

  • Headings, from font size relative to body text, mapped to H1 through H4
  • Paragraphs, by merging lines whose vertical gap is small enough to be line spacing rather than a break
  • Bulleted and numbered lists, including nesting inferred from indent depth
  • Tables, where cells align on the same columns across consecutive rows, rendered as GFM pipe tables
  • Bold, italic and monospace runs, from the font each glyph is set in
  • Two-column layouts, read left column fully before right, rather than interleaved line by line

What it cannot do

Scanned documents contain no selectable text, only an image of text. Optical character recognition is a different problem and this tool does not attempt it. If you upload a scan, you will get a warning rather than an empty file with no explanation.

Heavily designed layouts — magazine spreads, infographics, pages with text flowing around images at odd angles — will lose some of their reading order. Straightforward documents like reports, papers, invoices, manuals and ebooks convert well.

Images inside the PDF are not extracted. The text around them is.

Why in-browser conversion matters

Most online converters upload your file to their servers, process it there, and hand back a download link. That means your document sat on someone else's disk, however briefly, governed by a privacy policy you did not read.

This tool never makes that request. The PDF is parsed by PDF.js running in a Web Worker on your own machine. You can verify it: open your browser's network tab during a conversion and you will see no upload. Even the PDF.js worker files are served from this domain rather than a third-party CDN, so no outside party learns that you converted anything at all.

Frequently asked questions

Does the file get uploaded to a server?
No. The PDF is read directly from your disk by JavaScript running in your browser tab. No network request carries the file or any part of its contents.
How many pages can I convert for free?
The web version converts the first five pages of a document. The desktop app removes the page limit and adds batch processing for whole folders of PDFs.
What Markdown flavour does it output?
GitHub Flavored Markdown, so pipe tables render correctly on GitHub, in Obsidian, in VS Code, and in most static site generators.
Can it handle password-protected PDFs?
Yes. You will be prompted for the password, which is passed straight to the local parser and never transmitted or stored.
Does it work offline?
The web version needs an initial page load, after which conversion works without a connection. The desktop app is fully offline and uses a native Rust parser.
What happens to very large PDFs?
Files above 50 MB are rejected before parsing starts, and any single conversion running longer than 60 seconds is stopped so the browser tab stays responsive.

Related converters