Das Drucksystem von kivitendo benutzt von Haus aus LaTeX-Vorlagen. Um drucken zu können, braucht der Server ein geeignetes
LaTeX System. Am einfachsten ist dazu eine texlive
Installation. Unter Debianoiden Betriebssystemen installiert man
die Pakete mit:
aptitude install texlive-base-bin texlive-latex-recommended texlive-fonts-recommended \ texlive-latex-extra texlive-lang-german texlive-generic-extra
TODO: RPM-Pakete.
kivitendo bringt drei alternative Vorlagensätze mit:
Standard
f-tex
RB
Im Administrationsbereich lässt sich bei einem Benutzer/Mandanten einer dieser Vorlagensätze als Basis für die zu druckenden Dokumente auswählen. Rufen Sie dazu die
auf.Wählen Sie dort einen Benutzer aus oder legen Sie einen neuen an. In der Benutzerbearbeiten-Maske müssen Sie zwei Dinge angeben:
Name
: Der Verzeichnisname für den neuen Vorlagensatz. Dieser kann im Rahmen der üblichen
Bedingungen für Verzeichnisnamen frei gewählt werden.
Vorlagen auswählen
: Wählen Sie hier den Vorlagensatz aus, der kopiert werden soll
(Standard
, f-tex
oder RB
.)
Der gleiche Vorlagensatz kann, wenn er mal angelegt ist, bei mehreren Benutzern verwendet werden.
Die Abhängigkeiten kann man prüfen mit:
/scripts/installation_check.pl -l
Der Standard-Vorlagensatz von Kivitendo. Wie unter http://demo.kivitendo.org zu sehen.
Ein Vorlagensatz, der in wenigen Minuten alle Dokumente zur Verfügung stellt.
Keine Redundanz. Es wird ein- und dieselbe LaTeX-Vorlage für alle briefartigen Dokumente verwendet. Also Angebot, Rechnung, Performarechnung, Lieferschein, aber eben nicht für Paketaufkleber etc..
Leichte Anpassung an das Firmen-Layout durch verwendung eines Hintergrund-PDF. Dieses kann leicht mit dem eigenen Lieblingsprogramm erstellt werden (Openoffice, Inkscape, Gimp, Adobe*)
Hintergrund-PDF umschaltbar auf "nur erste Seite" (Standard) oder "alle Seiten" (Option
"bgPdfFirstPageOnly
" in Datei letter.lco
)
Hintergrund-PDF für Ausdruck auf bereits bedrucktem Briefpapier abschaltbar. Es wird dann nur bei per E-Mail
versendeten Dokumenten eingebunden (Option "bgPdfEmailOnly
" in Datei
letter.lco
).
Nutzung der Layout-Funktionen von LaTeX für Seitenumbruch, Wiederholung von Kopfzeilen, Zwischensummen etc. (danke an Kai-Martin Knaak für die Vorarbeit)
Anzeige des Empfängerlandes im Adressfeld nur, wenn es vom Land des eigenen Unternehmens abweicht (also die Rechnung das Land verlässt).
Multisprachfähig leicht um weitere Sprachen zu erweitern, alle Übersetzungen in der Datei
translatinos.tex
.
Auflistung von Bruttopreisen für Endverbraucher.
Vorlagenverzeichnis mit Option f-tex anlegen, siehe: Vorlagenverzeichnis anlegen. Das Vorlagensystem funktioniert jetzt schon, hat allerdings noch einen Beispiel-Briefkopf.
Erstelle eine pdf-Hintergrund Datei und verlinke sie nach ./letter_head.pdf
.
Editiere den Bereich "settings
" in der datei letter.lco
.
oder etwas Detaillierter:
Es wird eine Datei sample.lco
erstellt und diese nach letter.lco
verlinkt. Eigentlich
ist dies die Datei die für die Firmenspezifischen Anpassungen gedacht ist. Da die Einstiegshürde in LaTeX nicht ganz niedrig
ist, wird in dieser Datei auf ein Hintergrundpdf verwiesen. Ich empfehle über dieses PDF die persönlichen Layoutanpassungen
vorzunehmen und sample.lco
unverändert zu lassen. Die die Anpassung über eine
*.lco
-Datei die letztlich auf letter.lco
verlinkt ist ist aber auch möglich.
Es wird eine Datei sample_head.pdf
mit ausgeliefert, diese wird nach letter_head.pdf
verlinkt. Damit gibt es schon mal eine Funktionsfähige Vorlage. Schau Dir nach Abschluss der Installation die Datei
sample_haed.pdf
an und erstelle ein entsprechendes PDF passend zum Briefkopf Deiner Firma, diese dann im
Template Verzeichniss ablegen und statt sample_head.pdf
nach letter_head.pdf
verlinken.
letzlich muss letter_head.pdf
auf das passende Hintergrund-PDF verweisen, welches gewünschten Briefkopf
enthält. Bei Updates oder nach erneutem
Es wird eine Datei mydata.tex.example
ausgeliefert, die nach mytdata.tex
verlinkt
ist. Bei verwendetem Hintergrund-PDF wird nur der Eintrag für das Land verwendet. Die Datei muss also nicht angefasst
werden. Die Anderen Werte sind für das Modul 'lp' (Label Print in erp - zur Zeit nicht im öffentlichen Zweig).
Alle Anpassungen zum Briefkopf, Fusszeilen, Firmenlogos, etc. sollten über die Hintergrund-PDF-Datei oder die
*.lco
-Datei erfolgen.
Das Konzept von kivitendo sieht vor, für jedes Dokument (Auftragsbestätigung, Lieferschein, Rechnung, etc.) eine LaTeX-Vorlage vorzuhalten, dies ist sehr Wartungsunfreundlich. Auch das Einlesen einer einheitlichen Quelle für den Briefkopf bringt nur bedingte Vorteile, da hier leicht die Pflege der Artikel-Tabellen aus dem Ruder läuft. Bei dem vorliegenden Ansatz wird für alle briefartigen Dokumente mit Artikel-Tabellen eine einheitliche LaTeX-Vorlage verwendet, welche über Codeweichen die Besonderheiten der jeweiligen Dokumente Berücksichtigt.
Tabellen mit oder ohne Preis
Sprache der Tabellenüberschriften etc.
Anpassung der Bezugs-Zeile (z.B. Rechnungsnummer versus Angebotsnummer)
Darstellung von Brutto oder Netto-Preisen in der Auflistung (Endverbraucher versus Gewerblicher Kunde)
Nachteil:
LaTeX hat ohnehin eine sehr steile Lehrnkurve. Die Datei letter.tex
ist sehr komplex und verstärkt damit
diesen Effekt noch einmal erheblich. Wer LaTeX-Erfahrung hat, oder geübt ist Scriptsparachen nachzuvollziehen kann natürlich
auch innerhalb der Tabellendarstellung gut persönliche Anpassungen vornehmen. Aber man kann sich hier bei Veränderungen sehr
schnell häftig in den Fuss schiessen.
Wer nicht so tief in die Materie einsteigen will oder leicht zu frustrieren ist, sollte sein Hintergrund PDF auf Basis der
mitglieferten Datei sample_head.pdf
erstellen, und sich an der Form der dargestellten Tabellen wie sie
ausgeliefert werden, erfreuen.
Kleiner Tipp: Nicht zu viel auf einmal wollen, lieber kleine kontinuierliche Schritte gehen.
Der auszuweisende Bruttopreis wird innerhalb der LaTeX-Umgebung berechnet. Es gibt zwar ein Feld, um bei Aufträgen "alle Preise Brutto" auszuwählen, aber:
hierfür müssen die Preise auch in Brutto in der Datenbank stehen (ja - das lässt sich über die Preisgruppen und die Zuordung einer Default-Preisgruppe handhaben)
man darf beim Anlegen des Vorgangs nicht vergessen Dieses Häkchen zu setzen. (das ist in der Praxis wenn man sowohl Endverbraucher- wie Gewerbekunden beliefert der eigentliche Knackpunkt)
Es gibt mit f-tex eine weitere Alternative. Die Information ob Brutto oder Nettorechnung wird mit den Zahlarten verknüpft. Zahlarten bei denen Rechnungen, Angebote, etc, in Brutto ausgegeben werden sollen, enden mit "_E" (für Endverbraucher). Falls identische Zahlarten für Gewerbekunden und Endverbraucher vorhanden sind, legt man diese einfach doppelt an (einmal mit der Namensendung "_E"). Gewinn:
Die Entscheidung, ob Netopreise ausgewiesen werden, ist nicht mehr fix mit einer Preisliste Verbunden.
Die Default-Zahlart kann im Kundendatensatz hinterlegt werden, und man muss nicht mehr daran denken, "alle Preise Netto" auszuwählen.
Die Entscheidung, ob Netto- oder Bruttopreise ausgewiesen werden, kann direkt beim Drucken reviediert werden, ohne dass sich der Auftragswert ändert.
In Lieferscheinen kommen shipto*
-Variablen im Adressfeld zum Einsatz. Wenn die
shipto*
-Variable leer ist, wird die entsprechende Adressvariable eingesetzt. Wenn also die Lieferadresse in
Straße, Hausnummer und Ort abweicht, müssen auch nur diese Felder in der Lieferadresse ausgefüllt werden. Für den Firmenname wird
der Wert der Hauptadresse angezeigt.
In den allermeisten Installationen sollte drucken jetzt schon funktionieren. Sollte ein Fehler auftreten wirft TeX sehr lange Fehlerbeschreibungen, der eigentliche Fehler ist immer die erste Zeite die mit einem Ausrufezeichen anfängt. Häufig auftretende Fehler sind zum Beispiel:
! LaTeX Error: File `eurosym.sty' not found. Die entsprechende LaTeX-Bibliothek wurde nicht gefunden. Das tritt vor allem bei Vorlagen aus der Community auf. Installieren Sie die entsprechenden Pakete.
! Package inputenc Error: Unicode char \u8:... set up for use with LaTeX. Dieser Fehler tritt auf, wenn sie versuchen mit einer Standardinstallation exotische utf8 Zeichen zu drucken. TeXLive unterstützt von Haus nur romanische Schriften und muss mit diversen Tricks dazu gebracht werden andere Zeichen zu akzeptieren. Adere TeX Systeme wie XeTeX schaffen hier Abhilfe.
Wird garkein Fehler angezeigt sondern nur der Name des Templates,
heißt das normalerweise, dass das LaTeX Binary nicht gefunden wurde.
Prüfen Sie den Namen in der Konfiguration (Standard:
pdflatex
), und stellen Sie sicher, dass pdflatex
(oder das von Ihnen verwendete System) vom Webserver ausgeführt werden
darf.
Wenn sich das Problem nicht auf Grund der ausgabe im Webbrowser verifizieren lässt:
editiere [kivitendo-home]/config/kivitendo.conf und ändere "keep_tmp_files" auf 1
keep_temp_files = 1;
bei fastcgi oder mod_perl den Webserver neu Starten
Nochmal einen Druckversuch im Webfrontend auslösen
wechsele in das users Verzeichnis von kivitendo
cd [kivitendo-home]/users
LaTeX Suchpfad anpassen:
export TEXINPUTS=".:[kivitendo-home]/templates/[aktuelles_template_verzeichniss]:"
Finde herraus welche Datei kivitendo beim letzten Durchlauf erstellt hat
ls -lahtr ./1*.tex
Es sollte die letzte Datei ganz unten sein
für besseren Hinweis auf Fehler texdatei nochmals übersetzen
pdflatex ./1*.tex
in der *.tex datei nach dem Fehler suchen.