lpOD -- languages & platforms OpenDocument, is a Free Software project that offers, for high level use cases, an application programming interface dedicated to document processing with the Python, Perl and Ruby languages. It's complying with the Open Document Format (ODF), i.e. the ISO/IEC 26300 international standard.
lpOD is designed according to a top-down approach. The API is bound to the document functional structure and the user's point of view [1]. As a consequence, it may be used without knowledge of the ODF specification, and allows the application developer to be focused on the business needs instead of the low level storage concerns.
This documentation describes the functional specification and the general design. We define the :doc:`Level 0 <level0>` as an encapsulation of all the low-level access logic to ODF resources (local or remote file management, packaging, encoding and XML navigation). The :doc:`Level 1 <level1-introduction>` describes a document-oriented API that hides the physical data model and reflects a typical user's view on the documents.
In order to illustrate some typical features of the API, we provide a :doc:`CookBook </cookbook>` and a set of :doc:`command line tools </cmd-line-tools>` to manipulate various spreadsheet (ODS), presentation (ODP), and text (ODT) document contents.
Jean-Marie Gouarné [2], lpOD Architect.
[1] | At the opposite of implementations based on a code generation from the ODF RelaxNG schema. |
[2] | Jean-Marie Gouarné is the author of the Perl ODF Connector toolkit which got an "OpenOffice.org Community Innovation Program award in 2008" |
.. toctree:: :maxdepth: 3 cookbook.rst
.. toctree:: :maxdepth: 2 cmd-line-tools.rst
.. toctree:: :maxdepth: 3 level0.rst
.. toctree:: :maxdepth: 2 level1-introduction.rst level1-document.rst level1-basic-text-containers.rst level1-text-marks-and-indices.rst level1-tables-of-content.rst level1-notes.rst level1-tables.rst level1-structured-containers.rst level1-fields-and-forms.rst level1-graphic-content.rst level1-metadata.rst level1-styles.rst
.. toctree:: :maxdepth: 2 autodocs.rst