kivitendo unterstützt die Verwendung von Vorlagen im
      OpenDocument-Format, wie es OpenOffice.org ab Version 2 erzeugt.
      kivitendo 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/kivitendo.conf die Variable
      opendocument im Abschnitt
      print_templates auf ‘1’ stehen.
      Dieses ist die Standardeinstellung.
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/kivitendo.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 kivitendo 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.
![]()  | Anmerkung | 
|---|---|
Für die Verbindung zu OpenOffice wird normalerweise der
        Python-Interpreter  Zusätzlich ist es möglich, Pfade anzugeben, in denen Python
        neben seinen normalen Suchpfaden ebenfalls nach Modulen gesucht wird,
        z.B. falls sich diese in einem gesonderten OpenOffice-Verzeichnis
        befinden. Diese zweite Variable heißt
          | 
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.
OpenDocument Vorlagen können Makros enthalten, welche komplexere Aufgaben erfüllen.
Der Vorlagensatz "rev-odt" enthält solche Vorlagen mit Schweizer Bank-Einzahlungsscheinen (BESR). Diese Makros haben die Aufgabe, die in den Einzahlungsscheinen benötigte Referenznummer und Kodierzeile zu erzeugen. Hier eine kurze Beschreibung, wie die Makros aufgebaut sind, und was bei ihrer Nutzung zu beachten ist (in fett sind nötige einmalige Anpassungen aufgeführt):
Damit beim Erstellen von Rechnungen und Aufträgen neben der Standardvorlage ohne Einzahlungsschein weitere Vorlagen (z.B. mit Einzahlungsschein) auswählbar sind, muss für jedes Vorlagen-Suffix ein Drucker eingerichtet werden:
Druckeradministration -> Drucker hinzufügen
Mandant wählen
Druckerbeschreibung -> aussagekräftiger Text: wird in der Auftrags- bzw. Rechnungsmaske als Auswahl angezeigt (z.B. mit Einzahlungsschein Bank xy)
Druckbefehl -> beliebiger Text (hat für das Erzeugen von Aufträgen oder Rechnungen als odt-Datei keine Bedeutung, darf aber nicht leer sein)
Vorlagenkürzel -> besr bzw. selbst gewähltes Vorlagensuffix (muss genau der Zeichenfolge entsprechen, die zwischen "invoice_" bzw. "sales_order_" und ".odt" steht.)
speichern
Wer den Ausdruck mit Einzahlungsschein als Standardeinstellung im Rechnungs- bzw. Auftragsformular angezeigt haben möchte, kann dies persönlich für sich bei den Benutzereinstellungen konfigurieren:
Programm -> Benutzereinstellungen -> Druckoptionen
Standardvorlagenformat -> OpenDocument/OASIS
Standardausgabekanal -> Bildschirm
Standarddrucker -> gewünschte Druckerbeschreibung auswählen (z.B. mit Einzahlungsschein Bank xy)
Anzahl Kopien -> leer
speichern
In der Vorlage sind als Modul "BESR" 4 Makros gespeichert, die aus dem von kivitendo erzeugten odt-Dokument die korrekte Referenznummer inklusive Prüfziffer sowie die Kodierzeile in OCRB-Schrift erzeugen und am richtigen Ort ins Dokument schreiben.
Für den Einzahlungsschein ist die letzte Seite des Dokuments reserviert
Direkt über dem Einzahlungsschein enthält die Vorlage eine Zeile mit folgenden Angaben (Bank-Konto-Identifikationsnummer und Postkonto-Nummer der Bank müssen gemäss Angaben der jeweiligen Bank angepasst werden):
DDDREF: 4 Werte zum Bilden der Referenznummer (jeweils durch einen Leerschlag getrennt):
erster Wert: Bank-Konto-Identifikation (nur Ziffern, maximal 6), muss angepasst werden.
zweiter Wert: <%customernumber%> (Kundennummer: nur Ziffern, maximal 6)
dritter Wert: <%ordnumber%> (Auftragsnummer bei Auftragsvorlage sales_oder_besr.odt, sonst 0) maximal 7 Ziffern, führende Buchstaben werden vom Makro entfernt
vierter Wert: <%invnumber%> (Rechnungsnummer bei Rechnungsvorlage invoice_besr.odt, sonst 0) maximal 7 Ziffern, führende Buchstaben werden vom Makro entfernt
DDDKONTO: Postkonto-Nummer der Bank, muss angepasst werden.
DDDBETRAG: <%total%> Einzahlungsbetrag oder 0, falls Einzahlungsschein ohne Betrag
Im Einzahlungsschein selbst müssen der Name und die Adresse der Bank, die Postkonto-Nummer der Bank, sowie der eigene Firmenname und die Firmenadresse angepasst werden. Dabei ist darauf zu achten, dass sich die Positionen der Postkonto-Nummern der Bank, sowie der Zeichenfolgen dddfr, DDDREF1, DDDREF2, 609, DDDKODIERZEILE nicht verschieben.

Im Fussbereich der Rechnungsmaske muss neben Rechnung, OpenDocument/OASIS und Bildschirm die im Adminbereich erstellte Druckerbeschreibung ausgewählt werden, falls diese nicht bereits bei den Benutzereinstellungen als persönlicher Standard gewählt wurde.
Falls beim Öffnen einer von kivitendo erzeugten odt-Rechnung die Meldung kommt, dass Makros aus Sicherheitsgründen nicht ausgeführt werden, so müssen folgende Einstellungen in LibreOffice angepasst werden:
Extras -> Optionen -> Sicherheit -> Makrosicherheit
Sicherheitslevel auf "Mittel" einstellen (Diese Einstellung muss auf jedem Computer durchgeführt werden, mit dem von kivitendo erzeugte odt-Rechnungen oder Aufträge geöffnet werden.)
Beim Öffnen einer odt-Rechnung oder eines odt-Auftrags bei der entsprechenden Nachfrage "Makros ausführen" auswählen.
Wichtig: die Makros sind so eingestellt, dass sie beim Öffnen der Vorlagen selbst nicht ausgeführt werden. Das heisst für das Ansehen und Bearbeiten der Vorlagen sind keine speziellen Einstellungen in LibreOffice nötig.