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.0.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.0-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.0-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.0.tar.gz.

File metadata

  • Download URL: pyodr-5.7.0.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.0.tar.gz
Algorithm Hash digest
SHA256 df50f5ef17f38fa2a6d30f5068c9c4744282fdb917c6d11a627d0c9d8b51d8a3
MD5 fc36734cafcb78fa120f76b188e0aed4
BLAKE2b-256 e905e9c9bdbf09a893fc4d1e6f01b80fcb4aaa7abec99107673caaf81411dde7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyodr-5.7.0-cp314-cp314-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 6f5b94e781d1559facf7b5bba42e539aea3f3dec6a58e021cc6a1b3e5f4cabf3
MD5 84a190802691f7e101d95f93e56234d7
BLAKE2b-256 12ac7918af9d8ba4c4abc508b5748aa835863262e568a6cc6c4b8f170ab1973e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyodr-5.7.0-cp314-cp314-macosx_26_0_arm64.whl
Algorithm Hash digest
SHA256 b679bd35c082275ce348cc0a610223b416516bae44f28165dd4fb9afda4a98f1
MD5 6c44d871a8f322ca4e1465cd26f07674
BLAKE2b-256 f0d04846a0caf6991587f19c6768b0abf95b1d7860ea721b5c17605731ad8a11

See more details on using hashes here.

Provenance

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

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