Skip to main content

DOCX to Markdown for Python

Convert Word documents to Markdown, with individual pages, headers, footers, comments, and tracked changes.

Install

Use Python 3.11 or later. Install the package with pip:

pip install docx-to-markdown

Usage

Convert a file and read its document and page output:

from docx_to_markdown import convert

result = convert("contract.docx")
print(result.markdown)

for page in result.pages:
    print(f"Page {page.number}", page.markdown)
    print(page.header_markdown, page.footer_markdown)

result.markdown contains the document body; headers and footers stay in result.pages. Input can be a file path, bytes, or a binary file object.

Options

Enable images, supply font files, and choose a tracked-change view:

result = convert(
    "contract.docx",
    images=True,
    fonts="fonts/",
    google_fonts=True,
    display_mode="proposed",
)
result.write("out/")  # document.md, document.json, media/
  • images=True extracts images; images="html" also preserves displayed sizes.
  • fonts accepts font files or directories. Common Word font substitutes are bundled.
  • google_fonts=True fetches missing fonts from a pinned Google Fonts catalog (requires network access). Use google_font_families() to list supported families and result.missing_fonts to check what still needs local font files.
  • display_mode selects tracked changes: "all-markup" (default), "proposed" (accepted view), or "original" (rejected view).

Comments and tracked changes are available in result.comments and result.tracked_changes. Page breaks can differ from Word; check result.warnings for conversion issues.

Batch conversion

Reuse one converter process for multiple files:

from pathlib import Path
from docx_to_markdown import Converter

with Converter() as converter:
    for path in Path("contracts").glob("*.docx"):
        result = converter.convert(path)
        result.write(Path("output") / path.stem)

Command line

Write Markdown to standard output, save a file, or export a bundle:

docx-to-markdown contract.docx                 # Markdown to stdout
docx-to-markdown contract.docx -o contract.md
docx-to-markdown contract.docx --json
docx-to-markdown *.docx --bundle out/ --images

Documentation · Try the demo · PyPI · Changelog

License

Apache 2.0. Bundled dependencies and fonts retain their own licenses; notices are included in the package.

Metadata

Release files for docx-to-markdown 2.25.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for docx-to-markdown 2.25.0
File
docx_to_markdown-2.25.0-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details
docx_to_markdown-2.25.0-py3-none-manylinux_2_17_x86_64.whl Python 3 none Linux glibc 2.17+ x86-64 Details
docx_to_markdown-2.25.0-py3-none-manylinux_2_17_aarch64.whl Python 3 none Linux glibc 2.17+ ARM64 Details
docx_to_markdown-2.25.0-py3-none-macosx_13_0_x86_64.whl Python 3 none macOS 13.0+ x86-64 Details
docx_to_markdown-2.25.0-py3-none-macosx_13_0_arm64.whl Python 3 none macOS 13.0+ ARM64 Details

Total release size: 192.0 MB

Release files / docx_to_markdown-2.25.0-py3-none-win_amd64.whl

Download URL docx_to_markdown-2.25.0-py3-none-win_amd64.whl
Size 44.8 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
9a89ed471b31f77b56a92656cf2e6938374b512902f47f16680bba896b4cf6a7
BLAKE2b-256 checksum
How to use checksums
b2b78217ca64ad0029efcc7ff09e8607c37f8a0804e62ad981abfca2775908e9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 2, 2026.

Transparency log

Release files / docx_to_markdown-2.25.0-py3-none-manylinux_2_17_x86_64.whl

Download URL docx_to_markdown-2.25.0-py3-none-manylinux_2_17_x86_64.whl
Size 41.6 MB
Tags Linux glibc 2.17+ x86-64 Python 3
SHA-256 checksum
How to use checksums
6cbd3fb2b5a895142f03be9fca0388bb2858820318bf6fe5d1a927cac01bcf65
BLAKE2b-256 checksum
How to use checksums
a749c802ed9c1df8aa596c8ff42cecc526013dfc24b0a74d3d143f2a64cdfede
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 2, 2026.

Transparency log

Release files / docx_to_markdown-2.25.0-py3-none-manylinux_2_17_aarch64.whl

Download URL docx_to_markdown-2.25.0-py3-none-manylinux_2_17_aarch64.whl
Size 41.6 MB
Tags Linux glibc 2.17+ ARM64 Python 3
SHA-256 checksum
How to use checksums
a942077e02265d9648573d6e9804309dcc0bc80b486a3d49ba4c2880da829401
BLAKE2b-256 checksum
How to use checksums
231aa5568b2b9b9872f632c703696b7c76dbfe0e05af495f7380d10d01f61abf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 2, 2026.

Transparency log

Release files / docx_to_markdown-2.25.0-py3-none-macosx_13_0_x86_64.whl

Download URL docx_to_markdown-2.25.0-py3-none-macosx_13_0_x86_64.whl
Size 33.4 MB
Tags Python 3 macOS 13.0+ x86-64
SHA-256 checksum
How to use checksums
b196a13261c1fab070af2dd1b8ab80fb72b6762c19a1d2e520f6c324e80db0ce
BLAKE2b-256 checksum
How to use checksums
804310a8df92a8c095eef504f0c0d300b0a07144080787273ece61bc9f321159
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 2, 2026.

Transparency log

Release files / docx_to_markdown-2.25.0-py3-none-macosx_13_0_arm64.whl

Download URL docx_to_markdown-2.25.0-py3-none-macosx_13_0_arm64.whl
Size 30.7 MB
Tags Python 3 macOS 13.0+ ARM64
SHA-256 checksum
How to use checksums
67f34b660726b1fb8ac0cb064050fedf2a9245021f46fe7eabba12a1a67e15f0
BLAKE2b-256 checksum
How to use checksums
3fd126925fee01612977b38518de0520d4d73dd80765319887287e6cc3176e91
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 2, 2026.

Transparency log

Release history Release notifications | RSS feed

2.31.0

5 release files

2.30.0

5 release files

2.29.0

5 release files

2.28.0

5 release files

This release

2.25.0 This release

5 release files

2.23.0

5 release files

2.22.0

5 release files

2.21.1

5 release files

2.21.0

5 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page