poka.sh

Docs

ODP

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.

OpenDocument Presentation Preview.

At a glance

Original creator OASIS
First published 2005
Purpose The OpenDocument presentation format: a sequence of slides holding drawing shapes, text and speaker notes, as XML in a ZIP package.
Extensions .odp
Poka parser poka-odp
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: high (the reviewer read the code and a test that proves the claim). Basis: Reviewed 2026-10-16: parsers/poka-odp/src/lib.rs (draw:page walk with shape kind, placeholder class, text, master, layout and presentation:notes), unit tests, and tests/samples.rs over the corpus (3 .odp, 2 .otp, 3 .odg; testODP_NPE.odp is a 37-slide deck with text asserted, the others are mostly empty skeletons). Covers ODF presentations and templates (and drawings, which share the reader). Output is a text outline (TextAst).

What Poka does not read

  • Slide geometry and shape positions or sizes
  • Pictures, charts, OLE objects and media
  • Shape styling, fills, lines and text formatting
  • Master page content (footers, backgrounds); only the master name is shown
  • Table structure (cell text only)
  • Transitions, animations and hidden-slide flag
  • Slide comments
  • Speaker notes with text and drawings with text are covered only by unit tests, not corpus files
  • Encrypted packages

Background

Part of ODF from version 1.0 (OASIS, May 2005). The Library of Congress notes that ODF 1.2 added tables in presentations. Presentations and drawings share one model, pages of draw shapes, so Poka reads both: for each page its name, master and layout, the shapes with their placeholder roles and text, and the speaker notes kept apart from the slide. The file-information panel adds the title and author from meta.xml and the number of slides, counted from the pages read: Impress stores an object count, not a slide count, so the number is not taken from the file.

Versions

Version Identifier Poka Note
ODF presentation application/vnd.oasis.opendocument.presentation Read
  • OpenDocument drawing and presentation template (.odg, .otp): Routed to poka-odp in parsers/aliases.toml. The module also reads the drawing template (.otg), but no route sends that extension to 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) — README lists .odp among supported types, with less advanced presentation features; depends on lxml.
  • ODFDOM (ODF Toolkit) (candidate; Apache-2.0; Java; https://github.com/tdf/odftoolkit) — General ODF access framework; the repo page does not mention presentations or .odp explicitly.

Sources