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 bundle libmagic's database, so match that option:
conan install . -o '&:with_python=True' -o '&:bundle_assets=True' --build missing
CMAKE_ARGS="-DCMAKE_TOOLCHAIN_FILE=$PWD/conan_toolchain.cmake" pip install .
Runtime data
Rendering uses shipped assets (CSS/JS), and MIME detection uses libmagic's
compiled database (magic.mgc). Wheels bundle both under pyodr/data and pick
them up automatically. For in-tree builds set ODR_CORE_DATA_PATH (the tests
read it) and, if needed, ODR_LIBMAGIC_DATABASE_PATH, or call
pyodr.GlobalParams.set_odr_core_data_path(...) /
set_libmagic_database_path(...).
Neither is fatal when missing: without the assets, rendering fails on the
individual resource; without the database, odrcore tries the system database and
then falls back to its own magic sniffing (which sees an .odt as
application/zip rather than the ODF type).
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-6.0.0.tar.gz.
File metadata
- Download URL: pyodr-6.0.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 |
26ebd6687ffaba5e5580998381fa0946e170d284e4fc7aac75dfc885adca6877
|
|
| MD5 |
1790a18501e7feb66c294e4182a36087
|
|
| BLAKE2b-256 |
9135c4e78057ec432ee994d7f4ac209ea7814839cefe457cce4d23c99012b0d6
|
Provenance
The following attestation bundles were made for pyodr-6.0.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-6.0.0.tar.gz -
Subject digest:
26ebd6687ffaba5e5580998381fa0946e170d284e4fc7aac75dfc885adca6877 - Sigstore transparency entry: 2262153035
- Sigstore integration time:
-
Permalink:
opendocument-app/OpenDocument.core@890fa5422cd350e84d5caf12007fbe37a0bd2df7 -
Branch / Tag:
refs/tags/v6.0.0 - Owner: https://github.com/opendocument-app
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python.yml@890fa5422cd350e84d5caf12007fbe37a0bd2df7 -
Trigger Event:
release
-
Statement type:
File details
Details for the file pyodr-6.0.0-cp314-cp314-manylinux_2_39_x86_64.whl.
File metadata
- Download URL: pyodr-6.0.0-cp314-cp314-manylinux_2_39_x86_64.whl
- Upload date:
- Size: 3.5 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 |
0f12d315e55ed7f31df7821eec1460f0d6e52a5a2ee56368a466089b13c4cc1c
|
|
| MD5 |
71cfa78d3c2266a61f5f7e2e73869538
|
|
| BLAKE2b-256 |
63f0f4d48f1a8114cb24ff023b3d59f9d0dc6096bcf844c24c16632a0858d00e
|
Provenance
The following attestation bundles were made for pyodr-6.0.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-6.0.0-cp314-cp314-manylinux_2_39_x86_64.whl -
Subject digest:
0f12d315e55ed7f31df7821eec1460f0d6e52a5a2ee56368a466089b13c4cc1c - Sigstore transparency entry: 2262153797
- Sigstore integration time:
-
Permalink:
opendocument-app/OpenDocument.core@890fa5422cd350e84d5caf12007fbe37a0bd2df7 -
Branch / Tag:
refs/tags/v6.0.0 - Owner: https://github.com/opendocument-app
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python.yml@890fa5422cd350e84d5caf12007fbe37a0bd2df7 -
Trigger Event:
release
-
Statement type:
File details
Details for the file pyodr-6.0.0-cp314-cp314-macosx_26_0_arm64.whl.
File metadata
- Download URL: pyodr-6.0.0-cp314-cp314-macosx_26_0_arm64.whl
- Upload date:
- Size: 2.5 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 |
8653d5b003fd1650411bb3ce2a85c4013858886140bce133039e9e65944367d9
|
|
| MD5 |
dbe0e3b9ded1d2cdd508ceb145a86288
|
|
| BLAKE2b-256 |
71cf1c2eef153c5560e4a2f43857d3fffbd331d6549cb9c9e99d68941011a823
|
Provenance
The following attestation bundles were made for pyodr-6.0.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-6.0.0-cp314-cp314-macosx_26_0_arm64.whl -
Subject digest:
8653d5b003fd1650411bb3ce2a85c4013858886140bce133039e9e65944367d9 - Sigstore transparency entry: 2262153462
- Sigstore integration time:
-
Permalink:
opendocument-app/OpenDocument.core@890fa5422cd350e84d5caf12007fbe37a0bd2df7 -
Branch / Tag:
refs/tags/v6.0.0 - Owner: https://github.com/opendocument-app
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python.yml@890fa5422cd350e84d5caf12007fbe37a0bd2df7 -
Trigger Event:
release
-
Statement type: