2.10. OpenDocument-Vorlagen

Lx-Office unterstützt die Verwendung von Vorlagen im OpenDocument-Format, wie es OpenOffice.org ab Version 2 erzeugt. Lx-Office kann dabei sowohl neue OpenDocument-Dokumente als auch aus diesen direkt PDF-Dateien erzeugen. Um die Unterstützung von OpenDocument-Vorlagen zu aktivieren muss in der Datei config/lx_office.conf die Variable opendocument im Abschnitt print_templates auf ‘1’ stehen. Dieses ist die Standardeinstellung.

Weiterhin muss in der Datei config/lx_office.conf die Variable dbcharset im Abschnitt system auf die Zeichenkodierung gesetzt werden, die auch bei der Speicherung der Daten in der Datenbank verwendet wird. Diese ist in den meisten Fällen "UTF-8".

Während die Erzeugung von reinen OpenDocument-Dateien keinerlei weitere Software benötigt, wird zur Umwandlung dieser Dateien in PDF OpenOffice.org benötigt. Soll dieses Feature genutzt werden, so muss neben OpenOffice.org ab Version 2 auch der “X virtual frame buffer” (xvfb) installiert werden. Bei Debian ist er im Paket “xvfb” enthalten. Andere Distributionen enthalten ihn in anderen Paketen.

Nach der Installation müssen in der Datei config/lx_config.conf zwei weitere Variablen angepasst werden: openofficeorg_writer muss den vollständigen Pfad zur OpenOffice.org Writer-Anwendung enthalten. xvfb muss den Pfad zum “X virtual frame buffer” enthalten. Beide stehen im Abschnitt applications.

Zusätzlich gibt es zwei verschiedene Arten, wie Lx-Office mit OpenOffice kommuniziert. Die erste Variante, die benutzt wird, wenn die Variable $openofficeorg_daemon gesetzt ist, startet ein OpenOffice, das auch nach der Umwandlung des Dokumentes gestartet bleibt. Bei weiteren Umwandlungen wird dann diese laufende Instanz benutzt. Der Vorteil ist, dass die Zeit zur Umwandlung deutlich reduziert wird, weil nicht für jedes Dokument ein OpenOffice gestartet werden muss. Der Nachteil ist, dass diese Methode Python und die Python-UNO-Bindings benötigt, die Bestandteil von OpenOffice 2 sind.

Ist $openofficeorg_daemon nicht gesetzt, so wird für jedes Dokument OpenOffice neu gestartet und die Konvertierung mit Hilfe eines Makros durchgeführt. Dieses Makro muss in der Dokumentenvorlage enthalten sein und “Standard.Conversion.ConvertSelfToPDF()” heißen. Die Beispielvorlage ‘templates/mastertemplates/German/invoice.odt’ enthält ein solches Makro, das in jeder anderen Dokumentenvorlage ebenfalls enthalten sein muss.

Als letztes muss herausgefunden werden, welchen Namen OpenOffice.org Writer dem Verzeichnis mit den Benutzereinstellungen gibt. Unter Debian ist dies momentan ~/.openoffice.org2. Sollte der Name bei Ihrer OpenOffice.org-Installation anders sein, so muss das Verzeichnis users/.openoffice.org2 entsprechend umbenannt werden. Ist der Name z.B. einfach nur .openoffice, so wäre folgender Befehl auszuführen:

mv users/.openoffice.org2 users/.openoffice

Dieses Verzeichnis, wie auch das komplette users-Verzeichnis, muss vom Webserver beschreibbar sein. Dieses wurde bereits erledigt (siehe Manuelle Installation des Programmpaketes), kann aber erneut überprüft werden, wenn die Konvertierung nach PDF fehlschlägt.