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.

Release files for docx-to-markdown 2.23.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.23.0
File
docx_to_markdown-2.23.0-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details
docx_to_markdown-2.23.0-py3-none-manylinux_2_17_x86_64.whl Python 3 none Linux glibc 2.17+ x86-64 Details
docx_to_markdown-2.23.0-py3-none-manylinux_2_17_aarch64.whl Python 3 none Linux glibc 2.17+ ARM64 Details
docx_to_markdown-2.23.0-py3-none-macosx_13_0_x86_64.whl Python 3 none macOS 13.0+ x86-64 Details
docx_to_markdown-2.23.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.23.0-py3-none-win_amd64.whl

Download URL docx_to_markdown-2.23.0-py3-none-win_amd64.whl
Size 44.8 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
bf677cb154e968deb141e5c375a98eaf178553a1eda974edb9cf47e83a8fad14
BLAKE2b-256 checksum
How to use checksums
303985f52c520d405983277c9e96e93e498e131861e4d3743f946966867c4e8f
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 Sep 28, 2026.

Transparency log

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

Download URL docx_to_markdown-2.23.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
531025913799ae52c5963e39751899ee865b4f67ad8ca604ab6880f37607b96b
BLAKE2b-256 checksum
How to use checksums
13667912a60cbf9fb2b090987e036e5d66ce9ab81863c91aaa3ec24a62ac84bf
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 Sep 28, 2026.

Transparency log

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

Download URL docx_to_markdown-2.23.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
d75241c183a422e10e6f1c4d841e4c9d9c0d7b46013b222810cf80a345984e22
BLAKE2b-256 checksum
How to use checksums
7235536375a0fb73f1024ef6de5b2764c7cc6139e5b3419d9b6a448e20a4327a
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 Sep 28, 2026.

Transparency log

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

Download URL docx_to_markdown-2.23.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
b2a660776d944a9d5e04a5dbea870ab3838e7731f2a4a48884c6450ede41eaa1
BLAKE2b-256 checksum
How to use checksums
2fe3329c62705c2572ffcaa8e55580b03a24af0b3b114b45b00064e453e660f3
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 Sep 28, 2026.

Transparency log

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

Download URL docx_to_markdown-2.23.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
aab6267108bf37109ec499db47b447765f92ec9cdf0e0d05e7bb730b1c61eecb
BLAKE2b-256 checksum
How to use checksums
7151bc648db120e30182535e0432b3e9fb16e869a6e088550a4c9412e8adf1f0
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 Sep 28, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

2.23.0 This release

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