ODFPY - Python API and tools

Odfpy aims to be a complete API for OpenDocument in Python. Unlike other more convenient APIs, this one is essentially an abstraction layer just above the XML format. The main focus has been to prevent the programmer from creating invalid documents. It has checks that raise an exception if the programmer adds an invalid element, adds an attribute unknown to the grammar, forgets to add a required attribute or adds text to an element that doesn't allow it.

These checks and the API itself were generated from the RelaxNG schema, and then hand-edited. Therefore the API is complete and can handle all ODF constructions, but could be improved in its understanding of data types.

In addition to the API, there are a few scripts:

mailodf - Email ODF file as HTML archive
odf2xhtml - Convert ODF to (X)HTML
odf2xml - Create OpenDocument XML file from OD? package
odf2mht - Convert ODF to HTML archive
odf2war - Convert ODF to KDE web archive
odfimgimport - Import external images
odflint - Check ODF file for problems
odfmeta - List or change the metadata of an ODF file
odfoutline - Show outline of OpenDocument
odfuserfield - List or change the user-field declarations in an ODF file
xml2odf - Create OD? package from OpenDocument in XML form
Take also a look at the contrib folder.

Download the package from the OSOR repository.

Subversion repository

You can download the odfpy project with this command:

svn export https://svn.forge.osor.eu/svn/odfpy/trunk odfpy

Example: Hello world

from odf.opendocument import OpenDocumentText
from odf.text import P

textdoc = OpenDocumentText()
p = P(text="Hello World!")
textdoc.text.addElement(p)
textdoc.save("helloworld", True)