Skip to main content

pyodr — Python bindings for OpenDocument.core

Decode office documents (ODF, OOXML, legacy MS binary, PDF, CSV, ...) and render them to HTML from Python.

import pyodr

file = pyodr.open("document.odt")
print(pyodr.file_type_to_string(file.file_type()))

service = pyodr.html.translate(file, pyodr.HtmlConfig())
html = service.bring_offline("output-dir")
for page in html.pages():
    print(page.name, page.path)

The pyodr <file> command renders a document and opens it in the browser. pyodr <file> --serve hosts it over HTTP. The server needs a build with ODR_WITH_HTTP_SERVER.

Building

The bindings are part of the main CMake build, toggled by ODR_PYTHON:

conan install . -o '&:with_python=True' --build missing
cmake -B build -S . -DCMAKE_TOOLCHAIN_FILE=conan_toolchain.cmake -DODR_PYTHON=ON
cmake --build build --target pyodr_core
PYTHONPATH=build/python python -m pytest python/tests

pip install . from the repository root builds a wheel with scikit-build-core (root pyproject.toml). Run conan install first and point CMAKE_ARGS at the generated toolchain file:

conan install . -o '&:with_python=True' --build missing
CMAKE_ARGS="-DCMAKE_TOOLCHAIN_FILE=$PWD/conan_toolchain.cmake" pip install .

Runtime data

There is none. The renderer's css and js are part of the library, and MIME detection needs no database. mimetype runs the open strategy, so it names what is inside a zip or a compound file.

Metadata

Release files for pyodr 7.4.0

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

Source distribution (sdist)

Source distribution for pyodr 7.4.0
File Size Uploaded
pyodr-7.4.0.tar.gz 1.7 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for pyodr 7.4.0
File Interpreter ABI Platform
pyodr-7.4.0-cp314-cp314-manylinux_2_39_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.39+ x86-64 Details
pyodr-7.4.0-cp314-cp314-macosx_26_0_arm64.whl CPython 3.14 CPython 3.14 macOS 26.0+ ARM64 Details

Total release size: 8.5 MB

Release files / pyodr-7.4.0.tar.gz

Download URL pyodr-7.4.0.tar.gz
Size 1.7 MB
Tags Source
SHA-256 checksum
How to use checksums
c47b4b8ff20a77461e9c8b4d57c8e0f47c39828dd9befc9e651204635dcf5af2
BLAKE2b-256 checksum
How to use checksums
18a95738bca9beb5f1320410091aa76907ec7f9103e240ed2f8b930ad63f1233
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.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 3, 2026.

Transparency log

Release files / pyodr-7.4.0-cp314-cp314-manylinux_2_39_x86_64.whl

Download URL pyodr-7.4.0-cp314-cp314-manylinux_2_39_x86_64.whl
Size 3.9 MB
Tags CPython 3.14 Linux glibc 2.39+ x86-64
SHA-256 checksum
How to use checksums
40975a78ffee6356913d555f419f51ec97edc82e9589d4cb7806f8dcae27944c
BLAKE2b-256 checksum
How to use checksums
03a53dae5ed06c06e4b055f5f7d92766957386f48e9247d2ceca99358b747d95
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.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 3, 2026.

Transparency log

Release files / pyodr-7.4.0-cp314-cp314-macosx_26_0_arm64.whl

Download URL pyodr-7.4.0-cp314-cp314-macosx_26_0_arm64.whl
Size 2.8 MB
Tags CPython 3.14 macOS 26.0+ ARM64
SHA-256 checksum
How to use checksums
95068c1e7a8a66c0f28bc4bd04d9d3bca86f34032b05c141379372ab66eb96f5
BLAKE2b-256 checksum
How to use checksums
cb158a7cc8ef707d95a2c61bbeff0a3473a737e74ad49e341dbedf12d5623fea
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.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 3, 2026.

Transparency log

Release history Release notifications | RSS feed

7.5.2

3 release files

7.5.1

3 release files

7.5.0

3 release files

This release

7.4.0 This release

3 release files

7.3.2

3 release files

7.3.1

3 release files

7.3.0

3 release files

7.2.2

3 release files

7.2.1

3 release files

7.2.0

3 release files

7.1.0

3 release files

7.0.0

3 release files

6.12.0

3 release files

6.11.0

3 release files

6.10.1

3 release files

6.10.0

3 release files

6.9.0

3 release files

6.8.0

3 release files

6.7.1

3 release files

6.7.0

3 release files

6.6.0

3 release files

6.5.0

3 release files

6.4.0

3 release files

6.3.0

3 release files

6.2.0

3 release files

6.1.0

3 release files

6.0.1

3 release files

6.0.0

3 release files

5.7.1

3 release files

5.7.0

3 release files

0.0.2

26 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