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, "cache-dir", pyodr.HtmlConfig())
html = service.bring_offline("output-dir")
for page in html.pages():
    print(page.name, page.path)

A small CLI is included: pyodr <file> renders a document and opens it in the browser; pyodr <file> --serve hosts it over HTTP (via the core HTTP server, available when built 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 via scikit-build-core (see the root pyproject.toml); run conan install first and point CMAKE_ARGS at the generated conan_toolchain.cmake so the C++ dependencies resolve:

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, so rendering works out of the box, and MIME detection needs no database: mimetype runs the open strategy, so it names what is inside a zip or a compound file rather than answering application/zip for an .odt.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyodr-7.0.0.tar.gz (1.7 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pyodr-7.0.0-cp314-cp314-manylinux_2_39_x86_64.whl (3.8 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.39+ x86-64

pyodr-7.0.0-cp314-cp314-macosx_26_0_arm64.whl (2.8 MB view details)

Uploaded CPython 3.14macOS 26.0+ ARM64

File details

Details for the file pyodr-7.0.0.tar.gz.

File metadata

  • Download URL: pyodr-7.0.0.tar.gz
  • Upload date:
  • Size: 1.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for pyodr-7.0.0.tar.gz
Algorithm Hash digest
SHA256 dd63b28906c786b7b817a7121fb884921483a4024d4aaa29c5cfaac2667a1ac0
MD5 4c8b0f4b22bbfd9c8e7a093c7e80e4c6
BLAKE2b-256 e9b0c0e283803a2709e55c3da02cac32309f47ca3d684ac6a28bab4b3100f2e5

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyodr-7.0.0.tar.gz:

Publisher: python.yml on opendocument-app/OpenDocument.core

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyodr-7.0.0-cp314-cp314-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for pyodr-7.0.0-cp314-cp314-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 cb77aaff7baa40fee75378f67ec632616c460107d0c33bfb1ffdecd90c7804ef
MD5 7396640fef77b0cb3cdb7d978f90c506
BLAKE2b-256 7ec1c472b30f0640f38eb55394bb7b38b6fcde903bbba657a23da11923210d6c

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyodr-7.0.0-cp314-cp314-manylinux_2_39_x86_64.whl:

Publisher: python.yml on opendocument-app/OpenDocument.core

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyodr-7.0.0-cp314-cp314-macosx_26_0_arm64.whl.

File metadata

File hashes

Hashes for pyodr-7.0.0-cp314-cp314-macosx_26_0_arm64.whl
Algorithm Hash digest
SHA256 d1e44bbba11c6ad583097e755ab3d2590ad9bad16d6b0e5f9afa58ae1e4ba67d
MD5 5c14455efcca51bc9ed420a7cc0540d3
BLAKE2b-256 9a66f839d2c4835ce61fa49bd47dbf47731821a0a63e4bd4dcb47995b79646fc

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyodr-7.0.0-cp314-cp314-macosx_26_0_arm64.whl:

Publisher: python.yml on opendocument-app/OpenDocument.core

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

7.0.0 This release

3 files

6.14.0

3 files

6.13.0

3 files

6.12.0

3 files

6.11.0

3 files

6.10.1

3 files

6.10.0

3 files

6.9.0

3 files

6.8.0

3 files

6.7.1

3 files

6.7.0

3 files

6.6.0

3 files

6.5.0

3 files

6.4.0

3 files

6.3.0

3 files

6.2.0

3 files

6.1.0

3 files

6.0.1

3 files

6.0.0

3 files

5.7.1

3 files

5.7.0

3 files

0.0.2

26 files

0.0.1.post1

26 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