ODT (OpenDocument Text) — Open Standard Word Processing Format Guide
What Is ODT?
ODT (OpenDocument Text) is the word processing document format within the OpenDocument Format (ODF) family, an open, ISO-standardised format for office productivity documents. Developed by OASIS (Organization for the Advancement of Structured Information Standards) and first published as ISO/IEC 26300 in 2006, ODT is the default native format of LibreOffice Writer, Apache OpenOffice Writer, and Google Docs (when exporting).
ODF was created as an open alternative to Microsoft's proprietary formats (.doc, .docx), ensuring long-term accessibility of documents without dependence on any single vendor. Governments of Brazil, Germany, France, Belgium, South Africa, and many others mandate ODF for public sector documents to ensure data sovereignty.
OpenDocument Format Architecture
ZIP-Based Container
ODT files are ZIP archives containing multiple XML files and resources:
document.odt (ZIP)
├─ mimetype — "application/vnd.oasis.opendocument.text"
├─ content.xml — document text, tables, embedded objects
├─ styles.xml — paragraph, character, table, page styles
├─ meta.xml — document properties (author, creation date, etc.)
├─ settings.xml — application-specific settings
├─ manifest.xml — list of all files and their MIME types (in META-INF/)
├─ Thumbnails/
│ └─ thumbnail.png — 256×256 px preview image (optional)
├─ Pictures/
│ └─ image1.png — embedded images stored in their original format
└─ Object1/
└─ content.xml — embedded ODF chart or formula object
content.xml Structure
The main document XML follows a hierarchical structure:
<office:document-content>
<office:automatic-styles>
<!-- Automatic styles (anonymous; applied to specific paragraphs) -->
<style:style style:name="P1" style:family="paragraph">
<style:paragraph-properties fo:text-align="justify"/>
<style:text-properties fo:font-size="12pt" fo:font-weight="bold"/>
</style:style>
</office:automatic-styles>
<office:body>
<office:text>
<text:p text:style-name="Heading 1">Chapter Title</text:p>
<text:p text:style-name="P1">Body paragraph text with
<text:span text:style-name="T1">inline formatting</text:span>.
</text:p>
<table:table table:name="Table1">
<table:table-row>
<table:table-cell><text:p>Cell content</text:p></table:table-cell>
</table:table-row>
</table:table>
</office:text>
</office:body>
</office:document-content>
Namespaces
ODT uses a rich set of XML namespaces, each governing a specific domain:
office:— general office document structuretext:— text content (paragraphs, headings, lists, tables, fields)style:— style definitions (paragraph, character, table, page)fo:— XSL Formatting Objects properties (font, alignment, margins)draw:— drawing shapes and framestable:— table structureschart:— embedded chartsmath:— MathML equations (via embed)dc:— Dublin Core metadata (title, creator, date)
Style Architecture
ODT uses a three-level style system:
1. Default Style
Global defaults applied to all content unless overridden. Defined in styles.xml.
2. Named Styles (Paragraph and Character)
User-visible styles like "Heading 1", "Default Paragraph Style", "Body Text", "Emphasis". These are the styles shown in the style selector in LibreOffice. Named styles can inherit from parent styles.
3. Automatic Styles
Anonymous styles applied to specific content objects to override named style properties. Generated automatically when the user applies direct formatting (e.g., making one word bold creates an automatic character style applied to that word range).
This hierarchy ensures that global style changes propagate correctly while allowing exceptions. A document-wide "increase all body text to 14pt" change in the named "Body Text" style automatically updates all paragraphs using that style.
Features Supported by ODT
Text and Formatting
- All standard character formatting (font, size, colour, bold, italic, underline, strikethrough, superscript, subscript)
- Paragraph formatting (alignment, indentation, line spacing, spacing before/after)
- Named and automatic styles with inheritance
- Paragraph and character style sheets with document-wide update propagation
Structural Elements
- Headings (Heading 1–10 levels)
- Numbered and bulleted lists (including multilevel lists)
- Tables with borders, merging, row/column spanning
- Text frames and floating objects
- Text boxes with free positioning
Advanced Features
- Tracked changes — full change tracking with author name, timestamp, insertion/deletion marks (ODT v1.2+)
- Comments — marginal annotations with author attribution
- Fields — dynamic fields: page number, date/time, document title, cross-references, bibliography entries
- Hyperlinks — clickable links with target URL and section anchor support
- Bookmarks — named anchors for internal navigation and cross-reference targets
- Tables of contents — auto-generated from heading styles
- Indexes — word index, bibliography, illustration index
- Footnotes and endnotes
- Sections — named regions with separate column layouts or protection settings
- Master pages — multiple page styles (first page, left/right pages, landscape pages)
Embedded Objects
- Images (stored in original format in the ZIP)
- ODF Charts (
chart:namespace elements or separate chart/ subdirectory) - MathML formulas (via
draw:objectwith sub-document) - OLE objects (for non-ODF content from Windows applications)
- Linked images (by URL reference rather than embedding)
ODT vs. DOCX: Detailed Comparison
| Feature | ODT | DOCX |
|---|---|---|
| Standard body | ISO/IEC 26300 (OASIS) | ECMA-376 / ISO/IEC 29500 (Microsoft) |
| Specification | Fully open, freely downloadable | Complex; many ambiguities |
| Native software | LibreOffice, OpenOffice | Microsoft Word |
| Other software | Word 2013+, Google Docs, WPS | LibreOffice, Google Docs |
| File structure | ZIP of XML + resources | ZIP of XML + resources |
| Compatibility | Near-universal among open tools | Best in Word; partial elsewhere |
| Track changes | Full | Full (richer in Word) |
| Styles | Powerful (cascade inheritance) | Powerful (different model) |
| Pagination control | Good | Excellent (Word proprietary extensions) |
| Macro language | LibreOffice Basic / ODF macros | VBA (Visual Basic for Applications) |
| Long-term access | Guaranteed (ISO open standard) | Dependent on Microsoft cooperation |
| Government mandated | Yes (many countries) | No (often avoided for public docs) |
Interoperability Notes
Word 2013 and later versions open ODT files natively with reasonable fidelity. Complex ODT features (advanced styles, certain table configurations, ODF-specific fields) may not convert perfectly to DOCX and vice versa. For documents shared between organisations using different software, PDF is often the preferred read-only distribution format.
Converting ODT Files
ODT → DOCX: Convert for sharing with Microsoft Word users; most formatting preserved; complex styles may simplify ODT → PDF: Convert for distribution; preserves layout; use LibreOffice "Export as PDF" for best results ODT → RTF: Convert for legacy compatibility; significant formatting simplification ODT → HTML: Convert for web publishing; requires post-processing for clean CSS output DOCX → ODT: Convert for LibreOffice workflows; open with LibreOffice Writer or Google Docs ODT → TXT: Extract plain text for analysis or content migration
Who Should Use ODT?
ODT is ideal for:
- Users working primarily in LibreOffice or Apache OpenOffice
- Organisations required to use open formats by government policy
- Long-term document archival where open-standard access is critical (ISO certified)
- Cross-platform workflows where document format independence from a specific vendor is valued
- Collaborative editing via LibreOffice Online or Nextcloud Office
DOCX is preferable for:
- Heavy collaboration with Microsoft Office users (formatting round-trip fidelity)
- Documents using advanced Word features (macro-enabled templates, complex VBA automation)
- Publishing workflows requiring precise Word pagination behaviour
Related conversions
Document conversions that follow this topic naturally: