ARtisan Tech

DB-encoding lx-office (latin1, latin9, utf-8)

Das richtige Encoding mit postgres und lx-office hinzubekommen ist ein Graus 🙂

Mit der Standardinstallation vom erp 2.6.0 wird im Web-Interface und in den Templates UTF-8 verwendet. Das funktioniert soweit bis zur Rechnungsgenerierung, ab da können die Latex-Templates nicht sauber ausgeführt werden, wenn Sonderzeichen im Langtext auftauchen. Somit kann auch kein PDF-Dokument generiert werden.

Ob das nur unter Linux so ist, oder an was es genau liegt mag ich nicht Festmachen. Dieselbe Version auf einem Debian-Etch führte zu einem ähnlichen Problem, welches sich mit der Umstellung auf latin9 beheben lies.

Die Formulare auf UTF-8 anzupassen sollte kein Problem darstellen, da die invoice.tex eigentlich schon optimiert sein sollte. Weit gefehlt! Die Verwendung von UTF-8 beim Rechnungschreiben und in der Buchhaltung ist meines Erachtens nicht notwendig, also hab ich von UTF-8 auf latin1 umgestellt. Und siehe da, reibungslose Funktionsweise.

Ich konnte das Problem nicht wirklich nachvollziehen, aber folgende Vorgehensweise hat mir geholfen:

  • pg_dump anlegen oder über phpPgAdmin Daten exportieren
  • Dump-Datei öffnen und Variable client_encoding von UTF-8 auf latin1 umstellen
  • Datenbank löschen
  • Datenbank mit encoding latin1 erstellen
  • Datenbank importieren
  • invoice.tex anpassen: die Zeile mit utf-8 ersetzen durch: “\usepackage[latin1]{inputenc}”

Und schon sollte lx-office mit Sonderzeichen richtig umgehen können. Warum ich diesen Umweg gewählt habe? Weil dies nach mehrsündiger Google-Suche noch am Sinnvollsten schien und der Aufwand ist auch geringer, als wenn man komplett in den Sources auf Fehlersuche gehen müsste.

Wer meine invoice.tex also Vorlage nutzen möchte, dem übersende ich auf Anfrage das File, um ihm das Leben leichter zu machen 🙂

Leave Comment