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; odr_core_data_path() and set_odr_core_data_path(...)
are deprecated leftovers that still store and return a path nothing reads.
MIME detection needs no runtime data: mimetype runs the open strategy, so it
names what is inside a zip or a compound file. libmagic_database_path() and
set_libmagic_database_path(...) are deprecated leftovers of the libmagic
backend that used to answer this and could only say application/zip for an
.odt; they still store and return a path, but nothing reads it.
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.6.0.tar.gz.
File metadata
- Download URL: pyodr-6.6.0.tar.gz
- Upload date:
- Size: 1.4 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5cd02bdf7319ce668f738f5d2fed0313886672541fb0c41215d3b67014f003aa
|
|
| MD5 |
896b9c10ee6145dcafaca9ff071765d6
|
|
| BLAKE2b-256 |
edf2c6a956d67f9bd9e6ae061f25581b5557b90a2f086558861fb45f88fd3109
|
Provenance
The following attestation bundles were made for pyodr-6.6.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.6.0.tar.gz -
Subject digest:
5cd02bdf7319ce668f738f5d2fed0313886672541fb0c41215d3b67014f003aa - Sigstore transparency entry: 2468766606
- Sigstore integration time:
-
Permalink:
opendocument-app/OpenDocument.core@c7b9c37b8436f3823fcc4213522218b6bc15c6b6 -
Branch / Tag:
refs/tags/v6.6.0 - Owner: https://github.com/opendocument-app
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python.yml@c7b9c37b8436f3823fcc4213522218b6bc15c6b6 -
Trigger Event:
release
-
Statement type:
File details
Details for the file pyodr-6.6.0-cp314-cp314-manylinux_2_39_x86_64.whl.
File metadata
- Download URL: pyodr-6.6.0-cp314-cp314-manylinux_2_39_x86_64.whl
- Upload date:
- Size: 3.2 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 |
2d4ab2b79c1788ef1aa476937b2f8792eb9a0636f7d773ecf2d6d8e0c4fce22d
|
|
| MD5 |
04e8a37e988ad9027b527817542ae964
|
|
| BLAKE2b-256 |
e43304e1ebf46c2c2aa496843689e1ce16610819ddd3ed55f434e635e5debe67
|
Provenance
The following attestation bundles were made for pyodr-6.6.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.6.0-cp314-cp314-manylinux_2_39_x86_64.whl -
Subject digest:
2d4ab2b79c1788ef1aa476937b2f8792eb9a0636f7d773ecf2d6d8e0c4fce22d - Sigstore transparency entry: 2468766641
- Sigstore integration time:
-
Permalink:
opendocument-app/OpenDocument.core@c7b9c37b8436f3823fcc4213522218b6bc15c6b6 -
Branch / Tag:
refs/tags/v6.6.0 - Owner: https://github.com/opendocument-app
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python.yml@c7b9c37b8436f3823fcc4213522218b6bc15c6b6 -
Trigger Event:
release
-
Statement type:
File details
Details for the file pyodr-6.6.0-cp314-cp314-macosx_26_0_arm64.whl.
File metadata
- Download URL: pyodr-6.6.0-cp314-cp314-macosx_26_0_arm64.whl
- Upload date:
- Size: 2.3 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 |
db93f664103bd611c82fb0dc9fe0cf7b115276f48a83193e23c3c712c958e71a
|
|
| MD5 |
ec9a0f57244fe45cb3d132302f5bcb64
|
|
| BLAKE2b-256 |
df72c9def9e86f560d309e014161932ebef610fbb3809ac1357f8a3fe67f71c8
|
Provenance
The following attestation bundles were made for pyodr-6.6.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.6.0-cp314-cp314-macosx_26_0_arm64.whl -
Subject digest:
db93f664103bd611c82fb0dc9fe0cf7b115276f48a83193e23c3c712c958e71a - Sigstore transparency entry: 2468766627
- Sigstore integration time:
-
Permalink:
opendocument-app/OpenDocument.core@c7b9c37b8436f3823fcc4213522218b6bc15c6b6 -
Branch / Tag:
refs/tags/v6.6.0 - Owner: https://github.com/opendocument-app
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python.yml@c7b9c37b8436f3823fcc4213522218b6bc15c6b6 -
Trigger Event:
release
-
Statement type: