The best PDF to Markdown converter depends on how you work. Python developers have free libraries such as MarkItDown and Docling. Large batches on a GPU suit Docling, Marker or MinerU. If you want a Windows app with no setup, there is MD Factory. Pandoc converts many formats to Markdown, but not PDF.

A disclosure: MD Factory is our product. For PDFs it uses Docling, compared below, and the Tesseract OCR engine. Facts about the other tools come from their own READMEs, documentation and license files, checked on October 17, 2026.

Four stacks of different paper documents lined up side by side in front of a laptop.
Each converter suits a different kind of document and a different way of working.

Comparison table

The table reflects each project's own pages as of October 2026. These tools change quickly, so check the linked pages before you settle on one.

ToolWhat it isScanned PDFsRuns onLicenseCost
MarkItDownPython library and command lineNo built-in OCR; needs an LLM plugin or an Azure servicePython 3.10 to 3.14MITFree; Azure calls are billed
DoclingPython library and command lineLocal OCR, with a choice of enginesWindows, macOS, Linux; Python 3.10 or laterMIT; models have their own licensesFree
MarkerPython library and command lineLocal OCR with its own modelPython 3.10 or later with PyTorch; GPU, CPU or Apple SiliconApache 2.0; model weights under a modified OpenRAIL-M licenseFree within the weights license; commercial license beyond it
MinerUPython library, command line and web interfaceLocal OCRWindows, macOS, Linux; Python 3.10 to 3.14Apache 2.0 with additional termsFree below the license thresholds
PandocCommand-line converterDoes not read PDFWindows, macOS, LinuxGPL 2.0 or laterFree
Online convertersWebsiteDepends on the serviceBrowserThe service's termsFree or paid, depending on the service
MD FactoryWindows appLocal OCR, built inWindows 10 22H2 and Windows 11, x64Proprietary7-day free trial, then a one-time purchase

MarkItDown: Microsoft's lightweight converter

MarkItDown is an open-source Python library and command-line tool from Microsoft. It converts PDF, Word, PowerPoint, Excel, HTML, EPUB, images, audio and several other formats to Markdown. It needs Python 3.10 to 3.14, and the README recommends installing it in a virtual environment.

pip install "markitdown[all]"
markitdown report.pdf -o report.md

Its built-in PDF converter reads the PDF's text layer. It builds Markdown tables from words aligned in columns and runs no layout or OCR models. The README says the output is meant for text-analysis tools and may not suit high-fidelity conversions that people will read.

Scanned pages need an add-on. The markitdown-ocr plugin from the same repository renders each scanned page and sends it to a vision model through an OpenAI-compatible client. The Azure Document Intelligence option sends the PDF to Microsoft's cloud service, and each call is billed. Either way, the pages go to whichever model or service you configure.

MarkItDown is MIT-licensed and free.

Docling: layout models and local OCR

Docling is an open-source converter started by IBM Research and now hosted by the LF AI & Data Foundation. It runs machine-learning models on each PDF page to detect the layout, reading order and table structure, then exports Markdown, HTML or JSON. It works on Windows, macOS and Linux with Python 3.10 or later.

pip install docling
docling report.pdf --output markdown --image-export-mode referenced

The models download on first use. For computers without internet access, the documentation explains how to download them in advance. OCR runs locally with an engine you choose, such as EasyOCR, RapidOCR or Tesseract. A GPU is optional: besides the CPU, Docling can use NVIDIA CUDA, Apple MPS and Intel XPU devices.

The last option in the example saves images as separate PNG files. Without it, Docling embeds them in the Markdown as base64 text.

Docling's code is MIT-licensed, and the README asks you to check each model's own license. The layout and table models of its standard PDF pipeline are published under Apache 2.0 and CDLA-Permissive-2.0. Docling is free.

Docling vs MarkItDown

Both are free, MIT-licensed and install with one pip command. They read PDFs in different ways.

QuestionMarkItDownDocling
How it reads a PDFText layer and column alignmentLayout, reading-order and table-structure models
Scanned pagesAn LLM plugin or AzureLocal OCR
What it installsNo PyTorch, no layout or OCR modelsPyTorch, plus models downloaded on first use
Other inputsOffice files, HTML, EPUB, images, audio, ZIP archives, YouTube linksOffice files, HTML, EPUB, images, audio, LaTeX, emails and more
Choose it whenYour PDFs have a text layer and you want a light dependencyYour PDFs include scans, multi-column pages or tables you need to keep

If you are not sure, run both on five or ten of your own PDFs and compare the Markdown with the original pages.

Marker: GPU batches and a model license to check

Marker is an open-source converter from Datalab. It turns PDFs and images into Markdown, JSON or HTML, and with extra dependencies also handles DOCX, PPTX, XLSX, HTML and EPUB. It needs Python 3.10 or later and PyTorch, and runs on a GPU, a CPU or Apple Silicon.

pip install marker-pdf
marker_single report.pdf
marker pdfs --output_dir markdown
marker_single report.pdf --use_llm

OCR runs through Datalab's surya model on a local inference server that Marker starts on first use: vLLM in Docker on NVIDIA GPUs, llama.cpp on CPUs and Apple Silicon. You install Docker or llama.cpp yourself. On a CPU, Marker defaults to a fast mode that calls the model only for scanned pages, garbled text and equations.

An optional LLM mode, the last command in the example, sends content to an LLM to merge tables across pages, format inline math and extract form values. Gemini is the default; Claude, OpenAI-compatible APIs and local models through Ollama also work. You need an API key for the chosen service or a running Ollama model.

Check the license before you use Marker at work. The code is Apache 2.0. The model weights use a modified AI Pubs Open RAIL-M license: they are free for personal use, research, and organizations under $5 million in annual revenue and under $5 million in total funding. Larger organizations, and anyone whose employer offers a product that competes with Datalab, need a commercial license from Datalab. The full terms are in the model license file.

Marker's README also publishes Datalab's own results on olmocr-bench, a public benchmark of 1,403 PDFs; in those runs, Marker's balanced mode on a GPU scores above Docling and MinerU. We have not repeated the tests.

MinerU: quality tiers from CPU to GPU

MinerU comes from the OpenDataLab team. It converts PDFs, images and Office files to Markdown and other formats. Version 4 has four quality tiers, from flash for quick previews to advanced for difficult documents. It runs on Windows, macOS and Linux with Python 3.10 to 3.14; the README installs it in a virtual environment.

pip install "mineru>=4.0,<5"
mineru-kit parse report.pdf -o report.md --tier standard
mineru telemetry disable

The default install runs on a CPU. The basic tier needs about 0.8 GB of models and 2 GB of RAM; the standard and advanced tiers need about 2 GB of models and 8 GB of RAM. With an NVIDIA GPU that has at least 8 GB of video memory, the full extra gives higher throughput. OCR runs locally.

Documents go to MinerU's online service only when you ask for remote parsing. The README also says MinerU may send anonymous usage telemetry that excludes document contents, file names and paths. The last command in the example turns telemetry off.

The license is Apache 2.0 with additional terms. Companies with over 100 million monthly active users or over USD 20 million in monthly revenue need a separate commercial license, and online services built on MinerU must state that they use it.

Pandoc does not read PDF

Pandoc is a free command-line converter between dozens of document formats, but it cannot read PDF. PDF does not appear among the input formats in its manual, and the official FAQ says that converting PDFs with Pandoc is not possible. Pandoc writes PDF only as output. Sources: Pandoc manual, Pandoc FAQ.

Pandoc is useful when you have the source file instead of the PDF. It reads DOCX, PPTX, XLSX, EPUB, HTML, ODT, RTF and more, and installs on Windows, macOS and Linux. On Windows:

winget install --source winget --exact --id JohnMacFarlane.Pandoc
pandoc report.docx -o report.md

Pandoc is licensed under GPL 2.0 or later and is free.

Online converters: no setup, but the file leaves your PC

Websites that convert PDF to Markdown need no installation and work in any browser. That suits a single document you would share publicly anyway.

The trade-off is control. The PDF goes to another company's server, and how long it stays there, who can access it and whether scans get OCR all depend on that service. Before you upload contracts, medical or financial records or client files, read the service's privacy policy, or use a tool that runs on your computer.

Local options are covered in our guide: Convert documents without uploading them.

MD Factory: Docling and Tesseract as a Windows app

MD Factory is our product, so weigh this section accordingly. It is a Windows app from the Microsoft Store that converts PDF, DOCX, PPTX, XLSX, HTML, TXT, EPUB, CSV, EML, FB2 and MOBI files to Markdown on your PC.

For PDFs, MD Factory runs Docling with the Tesseract OCR engine. Other formats go through its own converters. If you are comfortable with Python, Docling and Tesseract are free and do the core of the PDF conversion. MD Factory adds the setup and the workflow around them:

  • You install only the app. The layout and table models and the OCR language data come with it, so there is no Python to set up and nothing to download later.
  • MD Factory recognizes scanned PDFs on your PC, with automatic script detection or an OCR language you choose.
  • You add files or a whole folder with its subfolders, and conversion starts at once.
  • Each Markdown file is saved next to its source, with its images in a folder beside it. The original stays unchanged.
  • Each file ends as Completed, Needs review or Failed. MD Factory sets Needs review when a page has low OCR confidence or no extracted text.

The libraries are stronger in four ways:

  • MD Factory has no command line or API, so it cannot run inside a script or a server pipeline.
  • It runs only on Windows 10 22H2 and Windows 11, x64. The libraries also run on macOS and Linux.
  • It converts on the CPU and does not use a GPU. It processes PDFs one at a time and other formats in parallel. Docling, Marker and MinerU can use an NVIDIA GPU.
  • After a 7-day free trial, MD Factory is a one-time purchase. The libraries are free.

Which one to choose

If you write Python, try MarkItDown first when your PDFs have a text layer and you also convert Office files or web pages. Move to Docling when you need local OCR, tables or the right reading order across columns. Both are free.

If you run a pipeline at scale, look at Docling, Marker and MinerU: all three convert whole folders and can use NVIDIA GPUs. Test them on a sample of your own documents, and check Marker's model license and MinerU's thresholds if the work is commercial.

If you use Windows and want no setup, MD Factory converts files and folders, scans included, without a command line, after a 7-day free trial. If you have the Word or EPUB source and are fine with a command line, Pandoc is free.

If your documents are confidential, choose a tool that runs locally and skip online converters. In the libraries, check the options that send data off your computer: MarkItDown's Azure and LLM settings, Marker's LLM mode, MinerU's remote parsing and its telemetry. MD Factory processes files on your PC.

Whichever tool you pick, compare a few pages of the Markdown with the original, especially tables, multi-column pages and scans.

Related guides: preparing PDFs for RAG, converting scanned PDFs to Markdown.