Skip to content

LibreOffice/libetonyek

Repository files navigation

libetonyek is a library and a set of tools for reading and converting
Apple iWork documents (Keynote, Pages and Numbers). Supported versions
are Keynote 2-6, Pages 1-4 and Numbers 1-2. See FEATURES for more
details about what is currently supported.

Keynote documentation is, sadly, scarce. There are two official Apple
documents: The first one is "Technical Note 2073" (TN2073) [TODO: add
link], describing basic parts of the Keynote 1 format. The second is
"iWork Programming Guide", containing an overview of the Keynote 2
structure. Unfortunately it mostly documents things that do not need to
be documented: I mean, anyone can guess what elements like slide,
master-slide, stylesheet or layer mean, right? But how exactly does
style inheritance work? Which elements can be saved as a reference? What
do all these 1-3 letter elements and attributes in table model mean?
These and a lot of other questions remain unanswered. And that is just
the first incarnation of the version 2 format; nobody knows what has
changed since then.

Based on the previous paragraph, it should be clear that most of the
code in this library is based on guesses, sample presentations created
in Keynote '09 and "real-life" presentations collected on the Internet.

libetonyek requires boost, glm, liblangtag, librevenge, libxml2, mdds
and zlib to build.

The library is available under MPL 2.0+.