MarkItDown online: a no-install alternative for PDFs

MarkItDown is a Python tool, so there is nothing to open in a browser. If you have a PDF and want Markdown now, the converter below does the job in this tab, without installing anything or uploading the file.

Drop PDFs here

Or paste one, or choose files. Up to 20 at a time, converted in this tab.

No file handy? Try

Your files are read in this browser tab and never uploaded.

What MarkItDown is

MarkItDown is an open-source Python package and command-line tool from Microsoft, under the MIT licence. It converts many kinds of files to Markdown for language models and text analysis: PDF, Word, PowerPoint, Excel, HTML, CSV, JSON and XML, EPUB, ZIP archives, and more. Image captions and audio transcription use web-hosted services.

Its strength is breadth: one call handles a whole folder of mixed office files. For PDFs specifically, the built-in converter extracts the text with pdfminer.six, and uses pdfplumber for pages laid out like forms or tables.

pdftomd isn't MarkItDown and doesn't run it. It's a separate converter built for PDFs only, which runs in your browser. This page explains how they differ, and how to run MarkItDown yourself if that's what you need.

How to run MarkItDown

It needs Python 3.10 or later. Install it with only the PDF dependencies:

pip install 'markitdown[pdf]'

Convert a file from the command line:

markitdown report.pdf -o report.md

Or from Python:

from markitdown import MarkItDown

md = MarkItDown()
result = md.convert("report.pdf")
print(result.markdown)

We ran exactly this with version 0.1.9 for our benchmark. Use 'markitdown[all]' instead of [pdf] to add Word, PowerPoint, Excel and the other formats.

What you get from a PDF

On our set of 16 public PDFs, MarkItDown 0.1.9 produced:

  • Plain text without headings. None of the documents got a single # heading, so the outline of a report or paper was lost.
  • The PDF's line breaks and hyphens. Sentences were cut wherever the PDF's lines ended, and 307 words stayed split by an end-of-line hyphen, such as pur- suant.
  • Page headers and footers left in, repeated on every page.
  • Missing text on research papers. On the three research papers, roughly half to three quarters of the words were missing from the output.
  • Nothing from scans. There's no OCR for PDFs in the default install, so scanned pages came out empty. A plugin, markitdown-ocr, adds OCR by sending page images to a vision model through an API you configure.

It did well on the simpler documents: the court opinion, the form, and the Chinese, Japanese and Korean texts kept all of their words. The full numbers, document by document, are in our benchmark.

The same PDF in pdftomd

MarkItDown 0.1.9pdftomd
Runs inPython, on your machineYour browser, on your machine
Installpip install 'markitdown[pdf]'Nothing
FormatsPDF, Office, HTML, EPUB and morePDF
HeadingsNoYes, from font size and weight
ParagraphsPDF line breaks keptLines joined into paragraphs
Page headers, footers, page numbersKeptRemoved, with a switch to keep them
Hyphenated line endsKeptRejoined, checked against a word list
TablesAs text, or as tables on form-like pagesMarkdown tables, table pages flagged
Scanned PDFsPlugin with a cloud vision modelOCR in the browser, built in
Token count and RAG chunksNoYes
LicenceMITFree to use

If you need to convert Word or PowerPoint files too, or you're scripting a pipeline in Python, MarkItDown is the more practical choice. For PDFs, especially if you want the result now, use the converter at the top of this page.

Frequently asked questions

Is there an official MarkItDown website?

MarkItDown is published as a Python package and on GitHub. Microsoft doesn't offer it as a website, so sites called "MarkItDown online" are run by third parties, and the engine behind each one varies. pdftomd doesn't run MarkItDown, and it doesn't upload your file.

Can MarkItDown read scanned PDFs?

Not in the default install. You can add the markitdown-ocr plugin, which sends images to a vision model you configure, or use the Azure Document Intelligence option, a paid Microsoft cloud service. pdftomd reads scans with an OCR model that runs in your browser; see scanned PDF to Markdown.

Which is better for feeding documents to an LLM?

For PDFs, the output with headings, joined paragraphs and no repeated headers is easier for a model to follow and costs fewer tokens. pdftomd also shows the token count and can split the document into chunks. See PDF to Markdown for LLMs.

What other Python options are there?

PyMuPDF4LLM, Docling and Marker all convert PDFs to Markdown, each with different strengths and licences. PDF to Markdown in Python has working code for each.

MarkItDown is a project of Microsoft. pdftomd is independent and not affiliated with Microsoft.