ODT
Generated by scripts/gen-format-pages.py from docs/data/format-metadata/, FILE_FORMATS.csv and docs/formats-master.csv. Do not edit by hand: change the source, then run the script.
ODT Preview.
At a glance
| Original creator | OASIS, from the OpenOffice.org XML format by Sun Microsystems |
| First published | 2005 |
| Purpose | The OpenDocument text format: paragraphs, headings, tables and styles as XML in a ZIP package. |
| Extensions | .odt |
| Poka parser | poka-odt |
| Viewer | poka-text-viewer |
| Depth tier | Parser with a shared viewer (see Depth tiers) |
| Breadth tier | B3 Core (see Breadth tiers) |
How much Poka reads
B3 Core. Only the main content type or types are decoded (for example geometry but not materials, layers or annotations, or only one version family). The list of gaps is substantial.
Confidence: medium (the reviewer read the code). Basis: Reviewed 2026-10-16: parsers/poka-odt/src/lib.rs (content.xml walk keeping text:p and text:h, flavour detection), unit tests, and tests/samples.rs over the corpus .odt, .sxw, .stw and .ott files (16 .odt including an ODF 1.3 file, 3 .sxw, 2 .stw). Covers ODF 1.x and OpenOffice.org 1.x text. Corpus tests assert that blocks exist, exact text for two OOo 1.x files, and that testODFwithOOo3.odt keeps the text around its nested footnote, comment and text box and does not show its tracked deletion.
What Poka does not read
- Paragraph and character formatting, styles and fonts
- Pictures, drawings, frames and embedded objects
- Table structure (cell text appears as separate paragraphs)
- List structure (bullets and numbering not marked)
- Headers and footers (styles.xml is not read)
- Footnotes, endnotes and comments are shown inline where they were anchored, not collected at the end or marked as notes
- Tracked changes: insertions read as ordinary text; only the deletions are withheld
- Runs of spaces collapsed to one space
- Page layout, sections and columns
- Encrypted packages (reported as no readable paragraphs)
Background
The Library of Congress traces ODF to the OpenOffice.org XML format that Sun released with OpenOffice.org 1.0 and StarOffice 6.0, after buying StarOffice from Star Division in 1999. Sun submitted it to OASIS in 2002, OASIS approved ODF 1.0 in May 2005, and ISO published it as ISO/IEC 26300 in 2006. ODF 1.1 followed in February 2007 and ODF 1.2 in September 2011. Poka shows the text with its headings. Footnotes, comments and text boxes are paragraphs nested inside the paragraph that references them; each keeps its own text and the note follows the words that refer to it, and a comment's producer and date are left out. Paragraphs inside a tracked <text:deletion> are not shown: they are text the document no longer has. The OpenOffice.org 1.x files (.sxw, .stw) differ only in the namespace of the text elements, so the same reader handles them.
Versions
| Version | Identifier | Poka | Note |
|---|---|---|---|
| OpenOffice.org 1.x Writer | application/vnd.sun.xml.writer |
Read | Routed as .sxw and .stw in parsers/aliases.toml; the package often has no mimetype entry, so the manifest decides. |
| ODF 1.0 to 1.3 | application/vnd.oasis.opendocument.text |
Read |
Derived and related formats
- OpenDocument text template (
.ott): Has its own page; poka-ott reads it.
Libraries
Libraries Poka uses or has assessed for this format, with the status, licence and language the registry records.
- quick-xml (used; MIT; Rust)
- zip (used; MIT; Rust)
- odfdo (candidate; Apache-2.0; Python; https://github.com/jdum/odfdo) — Loads ODF 1.0-1.4 .odt/.ods/.odp; lxml only runtime dependency; actively maintained (copyright 2026 on repo page).
- odfpy (candidate; GPL-2.0-or-later OR Apache-2.0; Python; https://github.com/eea/odfpy) — Per README dual-licensed; includes odf2xhtml/odf2xml tools for OpenDocument 1.2. Activity dates not confirmed.
- dotext (candidate; MIT; Rust; https://github.com/anvie/dotext) — Text extraction only (docx, xlsx, pptx, odt, odp, pdf). Last crates.io release 0.1.1 dated 2017-12-03, so effectively unmaintained.
- Apache ODF Toolkit (ODFDOM) (candidate; Apache-2.0; Java; https://github.com/apache/odftoolkit) — Project retired; repository read-only since 30 December 2018. Page says it covers scanning/manipulating ODF documents; ODT coverage inferred.
- Aspose.Words for Java (candidate; Commercial; unknown; https://products.aspose.com/total/java/parse/odt/) — language: Java (also .NET and Python editions); Vendor page describes parsing/extracting text from ODT; licensing terms not read, Aspose lists a temporary-licence option.