Skip to main content

DOCX Editor by EigenPal

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.28.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.28.0
File
docx_to_markdown-2.28.0-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details
docx_to_markdown-2.28.0-py3-none-manylinux_2_17_x86_64.whl Python 3 none Linux glibc 2.17+ x86-64 Details
docx_to_markdown-2.28.0-py3-none-manylinux_2_17_aarch64.whl Python 3 none Linux glibc 2.17+ ARM64 Details
docx_to_markdown-2.28.0-py3-none-macosx_13_0_x86_64.whl Python 3 none macOS 13.0+ x86-64 Details
docx_to_markdown-2.28.0-py3-none-macosx_13_0_arm64.whl Python 3 none macOS 13.0+ ARM64 Details

Total release size: 217.8 MB

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

Download URL docx_to_markdown-2.28.0-py3-none-win_amd64.whl
Size 49.7 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
984672326ca6451b15ac3238ca132412d7385c2bc87bcf46bbc025f9bae77a8a
BLAKE2b-256 checksum
How to use checksums
00debd033bac40acccca8572178ab7f15d01b879b9893c3c2ff8ca73e3f57b9c
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 12, 2026.

Transparency log

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

Download URL docx_to_markdown-2.28.0-py3-none-manylinux_2_17_x86_64.whl
Size 47.1 MB
Tags Linux glibc 2.17+ x86-64 Python 3
SHA-256 checksum
How to use checksums
4429b605744e53182cb93f44eaae627b68f91fc39914238fb36af80496fa8c4a
BLAKE2b-256 checksum
How to use checksums
1a2fcf393dcd7369a61477c402ae81f0d30aef9d6c017bf1fe7fcb5d74b24264
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 12, 2026.

Transparency log

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

Download URL docx_to_markdown-2.28.0-py3-none-manylinux_2_17_aarch64.whl
Size 46.8 MB
Tags Linux glibc 2.17+ ARM64 Python 3
SHA-256 checksum
How to use checksums
b00b706938a8ed7b5781b6aa110f9150858d0d4bda9a0167b651fd8b84822fbf
BLAKE2b-256 checksum
How to use checksums
b31a7e47c82a8dcaa170d6a60ddaa7e6275461c2804606d0a244cc1d2345ebe5
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 12, 2026.

Transparency log

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

Download URL docx_to_markdown-2.28.0-py3-none-macosx_13_0_x86_64.whl
Size 38.3 MB
Tags Python 3 macOS 13.0+ x86-64
SHA-256 checksum
How to use checksums
a90f760acf86763cbb49b6be20ebe4dcdabbabbbdf880eef7a2e660c3fb3243b
BLAKE2b-256 checksum
How to use checksums
016691cec4e25c335f52fa8db70907ce54aba95d212c023c1489ab24b5c82f52
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 12, 2026.

Transparency log

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

Download URL docx_to_markdown-2.28.0-py3-none-macosx_13_0_arm64.whl
Size 36.0 MB
Tags Python 3 macOS 13.0+ ARM64
SHA-256 checksum
How to use checksums
e8c7a04e80d9e1eb089adf3d6b59d1d5991d6144587074c2c08fa01474c86cb0
BLAKE2b-256 checksum
How to use checksums
1c70b49adaed82fe502df483b53d53ea15607c26e7f253ad6f70425e4c372a73
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 12, 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

This release

2.28.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