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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
df50f5ef17f38fa2a6d30f5068c9c4744282fdb917c6d11a627d0c9d8b51d8a3
|
|
| MD5 |
fc36734cafcb78fa120f76b188e0aed4
|
|
| BLAKE2b-256 |
e905e9c9bdbf09a893fc4d1e6f01b80fcb4aaa7abec99107673caaf81411dde7
|
Provenance
The following attestation bundles were made for pyodr-5.7.0.tar.gz:
Publisher:
python.yml on opendocument-app/OpenDocument.core
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyodr-5.7.0.tar.gz -
Subject digest:
df50f5ef17f38fa2a6d30f5068c9c4744282fdb917c6d11a627d0c9d8b51d8a3 - Sigstore transparency entry: 2255827668
- Sigstore integration time:
-
Permalink:
opendocument-app/OpenDocument.core@78b903606a7fea1e089edfe7f879b66d21ab5e31 -
Branch / Tag:
refs/tags/v5.7.0 - Owner: https://github.com/opendocument-app
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python.yml@78b903606a7fea1e089edfe7f879b66d21ab5e31 -
Trigger Event:
release
-
Statement type:
File details
Details for the file pyodr-5.7.0-cp314-cp314-manylinux_2_39_x86_64.whl.
File metadata
- Download URL: pyodr-5.7.0-cp314-cp314-manylinux_2_39_x86_64.whl
- Upload date:
- Size: 2.8 MB
- Tags: CPython 3.14, manylinux: glibc 2.39+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6f5b94e781d1559facf7b5bba42e539aea3f3dec6a58e021cc6a1b3e5f4cabf3
|
|
| MD5 |
84a190802691f7e101d95f93e56234d7
|
|
| BLAKE2b-256 |
12ac7918af9d8ba4c4abc508b5748aa835863262e568a6cc6c4b8f170ab1973e
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyodr-5.7.0-cp314-cp314-manylinux_2_39_x86_64.whl -
Subject digest:
6f5b94e781d1559facf7b5bba42e539aea3f3dec6a58e021cc6a1b3e5f4cabf3 - Sigstore transparency entry: 2255827684
- Sigstore integration time:
-
Permalink:
opendocument-app/OpenDocument.core@78b903606a7fea1e089edfe7f879b66d21ab5e31 -
Branch / Tag:
refs/tags/v5.7.0 - Owner: https://github.com/opendocument-app
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python.yml@78b903606a7fea1e089edfe7f879b66d21ab5e31 -
Trigger Event:
release
-
Statement type:
File details
Details for the file pyodr-5.7.0-cp314-cp314-macosx_26_0_arm64.whl.
File metadata
- Download URL: pyodr-5.7.0-cp314-cp314-macosx_26_0_arm64.whl
- Upload date:
- Size: 2.0 MB
- Tags: CPython 3.14, macOS 26.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b679bd35c082275ce348cc0a610223b416516bae44f28165dd4fb9afda4a98f1
|
|
| MD5 |
6c44d871a8f322ca4e1465cd26f07674
|
|
| BLAKE2b-256 |
f0d04846a0caf6991587f19c6768b0abf95b1d7860ea721b5c17605731ad8a11
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyodr-5.7.0-cp314-cp314-macosx_26_0_arm64.whl -
Subject digest:
b679bd35c082275ce348cc0a610223b416516bae44f28165dd4fb9afda4a98f1 - Sigstore transparency entry: 2255827676
- Sigstore integration time:
-
Permalink:
opendocument-app/OpenDocument.core@78b903606a7fea1e089edfe7f879b66d21ab5e31 -
Branch / Tag:
refs/tags/v5.7.0 - Owner: https://github.com/opendocument-app
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python.yml@78b903606a7fea1e089edfe7f879b66d21ab5e31 -
Trigger Event:
release
-
Statement type: