Skip to main content

Python bindings for OpenDocument.core: render office documents to HTML

Project description

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 ODR_CORE_DATA_PATH=build/data 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. Wheels build without pdf2htmlEX/wvWare/libmagic (their runtime data cannot ship inside the wheel), so match those options:

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

Runtime data

Rendering uses shipped assets (CSS/JS). Wheels bundle them under pyodr/data and pick them up automatically; for in-tree builds set the environment variable ODR_CORE_DATA_PATH (the tests read it) or call pyodr.GlobalParams.set_odr_core_data_path(...).

Project details


Download files

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

Source Distribution

pyodr-5.7.1.tar.gz (1.1 MB view details)

Uploaded Source

Built Distributions

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

pyodr-5.7.1-cp314-cp314-manylinux_2_39_x86_64.whl (2.8 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.39+ x86-64

pyodr-5.7.1-cp314-cp314-macosx_26_0_arm64.whl (2.0 MB view details)

Uploaded CPython 3.14macOS 26.0+ ARM64

File details

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

File metadata

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

File hashes

Hashes for pyodr-5.7.1.tar.gz
Algorithm Hash digest
SHA256 cd7adda556593df9e54b964f447e1fa3c2c5b4b8f9139973fc68b70b8ab68e51
MD5 5fb887052232e30369edb6d8ef61ed83
BLAKE2b-256 130b7fff69097a6e21670e3929cff4422bba0b66dcbf4be1804d0232ea916114

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyodr-5.7.1.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-5.7.1-cp314-cp314-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for pyodr-5.7.1-cp314-cp314-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 a2441edcd6450f5c31e950f540c84911937de3f5fabf8af9c38eb1f48a2055db
MD5 e360603f8ed85248f61efde4344915c1
BLAKE2b-256 1f658a4fcc3457d1914f8d18099ef2e22842c87d6380bf9680199b194d77c3e5

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyodr-5.7.1-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-5.7.1-cp314-cp314-macosx_26_0_arm64.whl.

File metadata

File hashes

Hashes for pyodr-5.7.1-cp314-cp314-macosx_26_0_arm64.whl
Algorithm Hash digest
SHA256 25131873ebe5a524a1cdf1e48ba5e9efe48890fb1176ca7d56b09fde7c6315ce
MD5 8c12964972c84078dc5224c1f327fec6
BLAKE2b-256 439b233f2758addf639bc9583cefef1e3ffcc3cccccdf43ed23f8a00a9f1b70c

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyodr-5.7.1-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.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page