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

Total release size: 192.1 MB

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

Download URL docx_to_markdown-2.26.0-py3-none-win_amd64.whl
Size 44.8 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
42f73dc6e7bcc4c7c59a4c84b7e1853f33129f9a3e66d1e7705a2d1456871b6c
BLAKE2b-256 checksum
How to use checksums
1e555d7926fb341a53e499cf2c16a31e662dac0a7aaab95ee99b13e6288a044e
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 5, 2026.

Transparency log

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

Download URL docx_to_markdown-2.26.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
2652960ea639bd11d99c7bd3a29db5a4ef55cc65077dfd9e5145e3068799433a
BLAKE2b-256 checksum
How to use checksums
0e96bbe5ba75211087fc4978647321f4864472fd8255bacd2724d783a958f415
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 5, 2026.

Transparency log

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

Download URL docx_to_markdown-2.26.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
11639fa8f249937440370faa7b260a923a5e0323832215fd80f6d1e15860897d
BLAKE2b-256 checksum
How to use checksums
85e8d7336ebbdf04b9a7f41d528586b997ea3cf8e2f2695b598d2fda34db0bf0
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 5, 2026.

Transparency log

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

Download URL docx_to_markdown-2.26.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
b43058b4d6545a84ff99cbc4fbfe5bb9d31f916ff525f1a7be63a38063d33005
BLAKE2b-256 checksum
How to use checksums
e3722b41103701cf608317eb7b2432156eefc05c16e4cc64c9b0b77244c8d8f0
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 5, 2026.

Transparency log

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

Download URL docx_to_markdown-2.26.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
8b227685267a1732b93e8a681db95be2091f6238f5d067552dd2c8f4d89444e3
BLAKE2b-256 checksum
How to use checksums
22e21edf8f3ed3f4c553f82f0e12ac88ed0890ea76b7f05d0e40c9287992583f
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 5, 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.26.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