Kraft Projekt

Konfiguration

Dokumentation

openSUSE.org

Ausgabedokumente

Die Gestaltung der Ausgabedokumente kann ohne Eingriff in den Programmcode von Kraft an die eigenen Gegebenheiten (Logo, Briefkopf etc.) angepasst werden. Die Vorlage für die Dokumente ist in einem XML-Derivat mit Namen RML geschrieben. Jedem Dokumenttyp kann in Kraft unter dem Menüpunkt Einstellungen / Kraft einrichten, Tab Dokumentenart eine eigene Vorlagedatei zugewiesen werden, in der Besonderheiten implementiert werden können.

Detailinformationen zu RML sind im RML Userguide zu finden.

Hilfe und Tips zum Umgestalten der Ausgabedokumente kann über die Mailingliste angefragt werden.

Grundsätzliches über Vorlagen

Kraft liest die RML Vorlagedatei für den jeweiligen Dokumenttyp ein und ersetzt die darin enthaltenen Variablen mit den konkreten Werten des Dokumentes. Dafür wird das das Script erml2pdf verwendet, das in der Installation von Kraft enthalten ist.

Variablen, die ersetzt werden, sind in der Form {{VARIABLENNAME}} in der Vorlagendatei notiert. Z.B. ersetzt Kraft die Variable {{DOCTYPE}} mit dem Dokumenttyp, z. B. Rechnung. Es gibt eine ganze Reihe dieser Variablen, die von Kraft automatisch ersetzt werden. Sie können, müssen aber nicht in der Vorlage enthalten sein. So kann die Vorlage zum Beispiel vereinfacht werden, wenn man die Variablen, die die eigene Adresse bedeuten (MY_STREET etc) durch die konkreten Adressdaten der Firma ersetzt werden.

Eine eigene Vorlage erstellen

Um eine Vorlage nach eigenen Vorstellungen anzupassen, sollte die mit Kraft mitgelieferte Version kopiert und angepasst werden. Die eigene Vorlage kann für den gewünschten Dokumenttyp im Einstellungen-Dialog von Kraft ausgewählt werden.

Beispiel: Eigenes Logo in Vorlagedatei einbauen

Es würde zu weit gehen, RML hier umfassend zu beschreiben, Hilfe dazu kann über die Mailingliste erbeten werden. Trotzdem soll hier beispielhaft erklärt werden, wie ein Bild in die Vorlage eingebaut wird. Damit kann zum Beispiel ein Firmenlogo auf dem Ausgabe-PDF eingeblendet werden.

In der RML Vorlagedatei gibt es Abschnitte mit dem Namen pageTemplate. Sie beschreiben den Rahmen einer einzelnen Seite im Ausgabedokument und beschreiben Elemente die auf den Seiten fest vorhanden sein sollen. Weil die erste Seite sich von Folgeseiten unterscheidet gibt es zwei verschiedene pageTemplates, eines mit dem Namen first für die erste Seite und ein anderes mit dem Namen others für die Folgeseiten.

Das Logo soll in der oberen Ecke der ersten Seite erscheinen, deshalb muss es in das pageTemplate first. Innerhalb des pageTemplate gibt es einen Abschnitt pageGraphics. Dort drin sind grafische Elemente wie Texte und Linien beschrieben, die auf der ersten Seite vor dem Hinzufügen des Fliesstextes dargestellt werden. Hier wird die Logo-Bilddatei in XML notation angegeben:

<image x="140mm" y="22cm" width="6cm" height="6cm" file="/home/kf/kde/kraft/reports/pics/lurchie.png" />

Die X- und Y-Koordinaten werden von der unteren linken Ecke der Din A4-Seite aus gemessen. Zusätzlich ist die Breite und Höhe der Grafik in den Parametern width und height angegeben. Der file Parameter beinhaltet den absoluten Pfad zur Bilddatei. Wenn alles richtig ist wird das PDF beim nächsten Dokumentdruck das Bild enthalten.

Hier ist das komplette pageTemplate für die erste Seite inclusive des Logos angegeben:

    <pageTemplate id="first">
        <pageGraphics>
            <setFont name="Times-Roman" size="12" />
            <lineMode width="0.5" />
            <lines>2.41cm 2.2cm 19cm 2.2cm</lines>
            <fill color="darkgreen" />
            <drawCentredString x="105mm" y="2.3cm">{{MY_NAME}} {{MY_ORGANISATION}}</drawCentredString>

            <lines>7mm 19cm 12mm 19cm</lines>
            <lines>2mm 14.65cm 12mm 14.65cm</lines>

            <fill color="black" />
            <setFont name="Times-Roman" size="8" />
            <drawString x="25mm" y="24.7cm">{{MY_ORGANISATION}} - {{MY_STREET}} - {{MY_POSTCODE}} {{MY_LOCALITY}}</drawString>
            <lines>25mm 24.6cm 11cm 24.6cm</lines>
            <setFont name="Times-Roman" size="10" />
            <drawCentredString x="105mm" y="1.8cm">{{MY_STREET}} - {{MY_POSTCODE}} {{MY_LOCALITY}}</drawCentredString>
            <drawCentredString x="105mm" y="1.4cm">Telephone {{MY_PHONE}} - Fax {{MY_FAX}}</drawCentredString>
            <drawCentredString x="185mm" y="1.4cm">Page <pageNumber/></drawCentredString>
            <image x="140mm" y="22cm" width="6cm" height="6cm" file="/home/me/kraft/logo.png" />
        </pageGraphics>
        <frame id="address"  x1="2.41cm" y1="20.62cm" width="8.5cm" height="4cm"/>
        <frame id="info"     x1="12cm" y1="20.62cm" width="7.41cm" height="1.5cm"/>
        <frame id="subject"  x1="2.41cm" y1="18.2cm" width="17cm"  height="1.2cm"/>
        <frame id="detail"   x1="2.41cm" y1="3cm"  width="17cm"  height="15cm"/>
    </pageTemplate>

Beispiel: Unterschrift aus Bild unter das Dokument einfügen

Um auf dem Dokument eine Unterschrift abzubilden, kann man dieselbe scannen und als Bilddatei ablegen, die dann unterhalb des Abschlusstextes angezeigt wird.

Der Unterschied zum obigen Beispiel ist lediglich, dass die Unterschrift nicht an einer bestimmten, festen Stelle auf dem Dokument erscheinen soll, sondern mit dem Text wandert.

Das ist aber auch möglich, wie im folgenden Beispiel:

    <condPageBreak height="1cm"/>
	{{POSTTEXT}}
    <spacer length="0.3cm" width="1mm"/>
    <para style="text">
       {{GOODBYE}}
    </para>
    <illustration width="175" height="33">
      <image x="15" y="0" width="270" height="30" file="/home/me/kraft/Unterschrift.png" />
    </illustration>
    <nextFrame/>

Mit Größe und Positionierung muss man natürlich etwas experimentieren.


Page: De.Ausgabedokumente - Last Modified : Sa, 10 Jun 17

Copyright 2009-2020 Klaas Freitag and the Kraft Team