OOoPy: Ändern von OpenOffice.org Dokumenten in Python

OpenOffice.org (OOo) ist eine Open Source Office Suite mit Textverarbeitung, Tabellenkalkulation, Präsentationsprogramm u.a.

OOo hat ein standardisiertes und gut dokumentiertes, auf XML basierenden Datenformat. Damit ist es möglich, auch ohne die Benutzung von OOo, Dokumente zu erzeugen oder zu verändern, die dann mit OOo weiter verarbeitet werden können. Diese Vorgehensweise bietet sich besonders für Web-Anwendungen an, wo es normalerweise unvertretbar ist, innerhalb des Web-Servers OOo zu starten.

Die hier beschriebene Programmbibliothek ist nicht für Endanwender vorgesehen. Sie wird von uns in eigenen Projekten eingesetzt und steht im Sinne der OSS Tradition auch anderen Entwicklern und Interessierten zur Verfügung.

Technische Details

OOo Dokumente sind ZIP Archive mit einigen XML Dateien. Daher ist es einfach, diese Dokumente programmgesteuert zu untersuchen, zu erzeugen, oder zu modifizieren. OOoPy ist eine Bibliothek von Python Funktionen, um diese Aufgaben durchzuführen. Um das Rad nicht neu zu erfinden, verwendet OOoPy eine existierende XML Bibliothek, ElementTree von Fredrik Lundh. OOoPy ist eine kleine Abstraktionsschicht um ElementTree und verwendet Pythons ZipFile Bibliotheksfunktion zum Lesen und Schreiben von OOo Dokumenten.

Zusätzlich enthält OOoPy ein Framework um XML Transformationen auf OOo Dokumente anzuwenden. Einige solche Transformationen sind schon definiert, z.B., um Felder in OOo Dokumenten programmgesteuert zu ersetzen. Andere Transformationen, um OOo Benutzer-Einstellungen und Meta-Informationen eines Dokuments zu ändern werden als Beispiele mitgeliefert.

Bibliotheken wie OOoPy sind sinnvoll, wenn der Aufruf von OpenOffice.org in der eigenen Anwendung nicht möglich ist, z.B. in serverseitigen Web-Anwendungen.

Ressourcen

Vorausgesetzt wird mindestens Python Version 2.3. Derzeit wurde nur mit dieser Version getestet. Falls Sie Probleme mit 2.4 finden, bitte schreiben Sie einen Bug-Report.

Zur Anwendung von OOoPy wird die ElementTree Bibliothek von Fredrik Lundh benötigt. Dokumentation des OOo Dateiformats gibt es im Buch von J. David Eisenberg „OpenOffice.org XML Essentials “, welches der Gnu Free Documentation License untersteht und wohl bald in gedruckter Form erscheinen wird. Als Referenzdokument ist die XML File Format Specification (PDF) von OpenOffice.org zu empfehlen.

Derzeit besteht die Dokumentation nur aus Python Docstrings. Zugänglich auch über die help in Python.

Download

Englischsprachige Kurzdokumentation ist auf der Sourceforge Project Homepage zu finden. Dort ist auch der Download möglich.