Driver FixRecommendedSound, Wi-Fi or graphics acting up? Check drivers firstFind missing or outdated drivers fast.Check DriversOctober DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsWindows FixRecommendedWindows errors stealing your time? Find the fix fastScan stability, cleanup and performance issues.Fix Now×
Skip to content
World desk4 min

Convert PDFs, Word and Excel Files to Markdown with Python’s MarkItDown

Use MarkItDown to convert common files into Markdown with Python or its CLI. Learn which extras to install, what the reported PDF omission involves, and how to verify critical output.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

MarkItDown converts files such as PDFs, DOCX documents and XLSX workbooks into Markdown through a small Python API or a command-line utility. For those formats, install the matching optional dependencies—or the all extra. One caution matters for important documents: a reported PDF edge case returned text before an unusually encoded inline image but silently omitted text after it. A successful conversion is not proof that every source detail made it through.

Install MarkItDown for the formats you need

The MarkItDown project describes the package as a utility for converting files to Markdown for use with language models and text-analysis pipelines. Its README specifies Python 3.10 through 3.14 and recommends using a virtual environment. A base installation may not include converters for every format: PDF, DOCX and XLSX support is provided through optional dependencies.

As an Amazon Associate I earn from qualifying purchases.

To install support for those three formats, or broadly enable the project’s optional formats, use the relevant extra:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
python -m venv .venv
source .venv/bin/activate
pip install 'markitdown[pdf,docx,xlsx]'
# Or install the broader set of optional formats:
pip install 'markitdown[all]'

The package metadata identifies pdfminer.six and pdfplumber for PDF conversion, Mammoth and lxml for DOCX, and pandas and openpyxl for XLSX. Choose targeted extras when you only need specific formats; the all extra is the broader setup.

Convert a file with Python or the command line

Python API

Pass a file path to MarkItDown().convert(). The returned result exposes the Markdown as markdown:

from markitdown import MarkItDown

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

Change the path to a DOCX or XLSX file to convert those formats as well, provided their optional dependencies are installed.

Command-line utility

For a quick conversion from a shell, redirect the command’s output into a Markdown file:

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
markitdown report.pdf > report.md

This produces a Markdown text representation, not a faithful visual replica of the original. Layout, tables, images and embedded text may be represented differently or omitted depending on the source file and converter path.

What the reported silent PDF failure involves

An issue opened in the MarkItDown repository on May 9, 2026 describes a specific case in which PDF text after an inline image was missing from the extracted output, even though text before the image appeared. The report concerns an inline image in the PDF content stream, written as BI ... ID ... EI, using ASCII85 and Flate filters with a bare ~ terminator. The reporter said both the pdfplumber and pdfminer extraction paths returned the preceding text but did not surface the following text. The issue describes a synthetic reproduction and a real-world invoice, and suspects parser behavior as the cause. Read the issue report and reproduction details.

The reported environment was MarkItDown commit 4b65609 from May 7, 2026, pdfplumber 0.11.9, pdfminer.six 20251230, PyMuPDF 1.27.2.3, macOS 15.6 and Python 3.13. This is evidence of a reported edge case in that environment—not a measured failure rate, proof that PDFs generally lose text, or confirmation that the same defect remains in current releases. The issue’s status can change; consult the report and release history for the version you use.

Check important conversions against the source

MarkItDown’s conversion result can be nonempty and still incomplete in an edge case. For documents where omissions could matter, treat the Markdown as extracted content to verify, rather than as a completeness certificate. Useful checks include:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  • Compare extracted text after embedded images with the corresponding source pages.
  • Check expected headings, page markers, totals or other known values.
  • For structured documents, inspect tables and important fields rather than relying only on the overall file’s appearance in Markdown.

These are practical validation steps, not a built-in completeness check documented by the project. The project does not establish a representative accuracy rate or silent-failure rate.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

OCR for text embedded in images requires configuration

The separate markitdown-ocr plugin documents OCR for images embedded in PDF, DOCX, PPTX and XLSX files using an LLM vision client. Installing or enabling the plugin alone does not ensure OCR: the documented Python setup passes both an llm_client and an llm_model to MarkItDown. If no client is supplied, the plugin README says OCR is silently skipped and ordinary conversion continues; if an LLM call fails, conversion continues without that image’s text. Check the output when image text is material.

For scanned PDFs with no extractable text, the plugin README describes automatic detection and full-page rendering at 300 DPI. It also documents a PyMuPDF rendering recovery path for malformed PDFs. These are documented plugin behaviors, not a guarantee that OCR captures every image or fixes the separate inline-image extraction case described above.

Other formats and the limits of Markdown conversion

The project README lists support across format families including PowerPoint, Word, Excel, PDF, images, audio, HTML, CSV, JSON, XML, ZIP contents, YouTube URLs and EPUB. Availability depends on the relevant optional dependencies and, where applicable, plugins or external integrations; a format’s presence on the list does not mean every converter is included in a base installation.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Markdown is useful when the goal is searchable text, indexing or downstream analysis. It is not a promise to preserve page design, spreadsheet behavior, image content or every semantic relationship in the source. If the task requires image OCR, layout-aware extraction or strict completeness, choose and configure a suitable path, then validate the output against the original.

A separate CSV report illustrates why output inspection matters

A second issue, opened June 16, 2026, reported a CSV with a blank first line becoming a Markdown table with empty cells and no warning. The report used MarkItDown 0.1.6 with Python 3.12 and attributed the result to the blank first row being treated as the header, leaving subsequent rows with zero columns. This is a distinct reported CSV case, not the PDF inline-image issue. Read the CSV issue report.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
Windows Errors? Fix Them Before They SpreadFree repair scan
Crashes, No Sound, or Screen Glitches?Free driver scan

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.