X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/524bf98c7cdd801aa813d8ca2202b4cda62e96c2..91cd0db507d2a4878b03aec2e10737c37f7bbb09:/doc/html/ch02s13.html diff --git a/doc/html/ch02s13.html b/doc/html/ch02s13.html index 236dbaa9e..8f5c169f8 100644 --- a/doc/html/ch02s13.html +++ b/doc/html/ch02s13.html @@ -1,7 +1,7 @@ - 2.13. OpenDocument-Vorlagen

2.13. OpenDocument-Vorlagen

kivitendo unterstützt die Verwendung von Vorlagen im - OpenDocument-Format, wie es OpenOffice.org ab Version 2 erzeugt. + 2.13. OpenDocument-Vorlagen

2.13. OpenDocument-Vorlagen

kivitendo unterstützt die Verwendung von Vorlagen im + OpenDocument-Format, wie es LibreOffice oder OpenOffice (ab Version 2) erzeugen. 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 @@ -10,55 +10,127 @@ 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” + LibreOffice oder OpenOffice benötigt. Soll dieses Feature genutzt werden, so muss + neben LibreOffice oder OpenOffice 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]Anmerkung

- Für die Verbindung zu OpenOffice wird normalerweise der Python-Interpreter /usr/bin/python benutzt. Sollte - dies nicht der richtige sein, so kann man mit zwei Konfigurationsvariablen entscheiden, welcher Python-Interpreter genutzt - wird. Mit der Option python_uno aus dem Abschnitt applications wird der Interpreter selber - festgelegt; sie steht standardmäßig auf dem eben erwähnten Wert /usr/bin/python. -

- 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 - python_uno_path und befindet sich im Abschnitt environment. Sie ist standardmäßig - leer. Werden hier mehrere Pfade angegeben, so müssen diese durch Doppelpunkte voneinander getrennt werden. Der Inhalt wird an den - Python-Interpreter über die Umgebungsvariable PYTHONPATH übergeben. -

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 + config/kivitendo.conf im Abschnitt + applications zwei weitere Variablen + angepasst werden:

+ openofficeorg_writer muss den + vollständigen Pfad zu LibreOffice oder OpenOffice enthalten. + Dabei dürfen keine Anführungszeichen eingesetzt werden.

Beispiel für Debian oder Ubuntu:

openofficeorg_writer = /usr/bin/libreoffice

+ xvfb muss den Pfad zum “X virtual frame buffer” + enthalten.

Zusätzlich gibt es zwei verschiedene Arten, wie kivitendo mit + LibreOffice bzw. OpenOffice kommuniziert. Die erste Variante, die benutzt + wird, wenn die Variable $openofficeorg_daemon gesetzt + ist, startet ein LibreOffice oder 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 LibreOffice bzw. + OpenOffice gestartet werden muss. Der Nachteil ist, dass diese Methode + Python und die Python-UNO-Bindings benötigt, die Bestandteil von LibreOffice + bzw. OpenOffice sind.

[Anmerkung]Anmerkung

Für die Verbindung zu LibreOffice bzw. OpenOffice wird + normalerweise der Python-Interpreter + /usr/bin/python benutzt. + Sollte dies nicht der richtige sein, so kann man mit zwei + Konfigurationsvariablen entscheiden, welcher Python-Interpreter + genutzt wird. Mit der Option python_uno aus dem + Abschnitt applications wird der Interpreter selber + festgelegt; sie steht standardmäßig auf dem eben erwähnten Wert + /usr/bin/python.

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 LibreOffice- bzw. + OpenOffice-Verzeichnis befinden. Diese zweite Variable heißt + python_uno_path und befindet sich im Abschnitt + environment. Sie ist standardmäßig leer. Werden + hier mehrere Pfade angegeben, so müssen diese durch Doppelpunkte + voneinander getrennt werden. Der Inhalt wird an den Python-Interpreter + über die Umgebungsvariable PYTHONPATH + übergeben.

Ist $openofficeorg_daemon nicht gesetzt, so + wird für jedes Dokument LibreOffice bzw. 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’ + ‘templates/print/rev-odt/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 + OpenOffice bzw. LibreOffice 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 + ~/.config/libreoffice. kivitendo verwendet das + Verzeichnis users/.openoffice.org2. + Eventuell muss dieses Verzeichnis umbenannt werden.

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.

\ No newline at end of file + fehlschlägt.

2.13.1. OpenDocument (odt) Druckvorlagen mit Makros

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):

2.13.1.1. Bezeichnung der Vorlagen

Rechnung: invoice_besr.odt, Auftrag: + sales_order_besr.odt

2.13.1.2. Vorbereitungen im Adminbereich

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

2.13.1.3. Benutzereinstellungen

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

2.13.1.4. Aufbau und nötige Anpassungen der Vorlagen

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

    • DDDEND: muss am Ende der Zeile vorhanden sein

    +

  • + 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.

2.13.1.5. Auswahl der Druckvorlage in kivitendo beim Erzeugen einer + odt-Rechnung (analog bei Auftrag)

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.

2.13.1.6. Makroeinstellungen in LibreOffice anpassen

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.

\ No newline at end of file