PDF Templates

PDF Templates kommen innerhalb der DataEngine zum Einsatz um für bestimmte Module PDF Dateien zu generieren, welche Heruntergeladen oder Verschickt werden können. Für ein DataEngine Modul können mehrere Templates mit unterschiedlichen Inhalten, für unterschiedliche Zwecken konfiguriert werden. Innerhalb des Templates können Daten aus dem Modul eingesetzt werden, sowie auch Daten aus in Verbindung stehenden Modulen. Mit vereinfachten Bedingungen kann gesteuert werden wie eine PDF Datei aufgebaut wird.

Modul Einrichtung

Damit die PDF Template Funktion genutzt werden kann, muss das Modul entsprechend eingerichtet werden. Folge diesen Schritten:

  1. Gehe zum Admin Bereich und wähle „Developer Tools“ > „Dropdown Editor“ aus.
  2. Bearbeite das Dropdown mit dem Namen ‚pdf_template_type_dom‘.
  3. Gib den gewünschten Modulnamen im Feld ‚Item Name‘ ein, z.B. core_Deals.
  4. Trage den Namen ein, unter dem das Modul in der Auswahl erscheinen soll, im Feld ‚Display Label‘, z.B. Deals.
  5. Klicke auf den Button ‚Add‘, um beliebig viele Module hinzuzufügen.
  6. Übernehme die Änderungen durch Klicken auf den Button ‚Save‘.

Jetzt können PDF Templates für die konfigurierten Module angelegt werden.

Template Sektionen

Ein PDF Template besteht aus verschiedenen Sektionen:

  • Body: Diese Sektion wird generiert und über mehrere Seiten verteilt, wenn sie nicht auf eine Seite passt.
  • Header: Diese Sektion wird auf jeder Seite des generierten PDFs wiederholt, wenn es mehrere Seiten gibt.
  • Footer: Diese Sektion wird auf jeder Seite des generierten PDFs wiederholt, wenn es mehrere Seiten gibt.

Template Variablen

Im Editor können Variablen verwendet werden, die folgende Form haben: ‚$module_field‘. Der Editor zeigt während der Einrichtung alle möglichen Variablen zur Auswahl an.

Zusätzlich besteht die Möglichkeit, nach der Template-Variable einen Postprozessor durch den Einsatz des „|“ Symbols hinzuzufügen. Derzeit sind zwei Postprozessoren verfügbar:

  1. number(seperator;thousand;decimal): Dieser Postprozessor formatiert den Wert als Nummer und ermöglicht die Angabe von Dezimalzeichen, Tausendertrennzeichen und Nachkommastellen. Der Separator ist das Dezimaltrennzeichen. Das Dezimaltrennzeichen, entweder ein Punkt oder ein Komma, trennt den ganzzahligen Teil einer Dezimalzahl von ihrem Bruchteil. Thousand bezeichnet das Tausendertrennzeichen. Das Tausendertrennzeichen, oft ein Komma oder ein Punkt, wird verwendet, um Zahlen in Gruppen von drei Ziffern zu gliedern, um ihre Lesbarkeit zu verbessern.
    Beispiel: $module_field|number(,;.;2) formatiert den Wert als Nummer mit 2 Nachkommastellen in deutscher Schreibweise (2.314,65).
  2. date(format): Dieser Postprozessor formatiert den Wert als Datum entsprechend dem angegebenen Format. Beispiel: $module_field|date(m/d/y) formatiert den Wert als Datum im Format MM/TT/JJ (04/19/2024). Das verwendete Format basiert intern auf den PHP Datumsformaten, wie sie in der PHP Dokumentation beschrieben sind: PHP Datumsformat.

Template Bedingungen

PDF Templates unterstützen eine vereinfachte Bedingungssyntax. Diese kann genutzt werden, um bestimmte Sektionen im generierten PDF auszublenden. Zum Beispiel könnte ein Deal Report je nach Sales Stage unterschiedliche Informationen anzeigen.

Hier sind einige Beispiele für die Bedingungssyntax:

Einfacher Fall:

{% if $variable == 'test' %}
    Dann zeige diesen Teil an
{% endif %}

Fall mit ‚else‘:

{% if $variable == 'test' %}
    Dann zeige diesen Teil an
{% else %}
    Andernfalls zeige diesen Teil an
{% endif %}

Es ist möglich, Bedingungen im Header, Footer und Body Template zu verwenden. Derzeit wird nur der Operator ‚==‘ unterstützt. Alle Variablen des PDF Template Editors können verwendet werden. Beachte, dass Bedingungen derzeit nicht verschachtelt werden dürfen.

Template Styling

1. Inline-Styling im PDF-Template

Beim Inline-Styling werden CSS-Stile direkt innerhalb des HTML-Codes des PDF-Templates hinzugefügt. Diese Methode ermöglicht schnelle und spezifische Stil-Anpassungen, kann jedoch bei größeren Templates oder wenn konsistentes Styling über mehrere Templates hinweg erforderlich ist, umständlich werden.
Beispiel:

<p style="font-size: 12pt; color: #333;">Dies ist ein gestylter Absatz.</p>

2. Globales Styling für alle PDF-Templates

Globales Styling kann über das Admin-Panel auf alle PDF-Templates angewendet werden. Diese Methode sorgt für ein konsistentes Erscheinungsbild über alle Templates hinweg und vereinfacht die Verwaltung der Stile.
Um globales Styling anzuwenden:

  1. Navigieren Sie zu AdminCSSCSS PDF.
  2. Fügen Sie Ihre CSS-Stile im bereitgestellten Editor hinzu. Diese Stile werden auf alle PDF-Templates angewendet.

Die Standardschriftart kann nur über die mPDF Konfiguration geändert werden!

Beispiel:

body {
  font-size: 12pt;
  color: #333;
}
h1 {
  font-size: 24pt;
  color: #000;
}

3. Konfiguration von mPDF

Erweiterte Styling- und Konfigurationsoptionen können durch die Konfiguration der mPDF-Einstellungen erreicht werden. Diese Methode ermöglicht detaillierte Anpassungen, einschließlich der Festlegung von Standardschriftarten, Schriftverzeichnissen und anderen PDF-Generierungsoptionen. Für detaillierte Informationen zur mPDF-Konfiguration, siehe die mPDF-Dokumentation unter https://marini.systems/de/help-center/docs/custom-config/.
Beispiel:

{
  "mpdf": {
    "default_font": "helvetica",
    "fontDir": [
      "custom/fonts"
    ],
    "fontdata": {
      "helvetica": {
        "R": "Helvetica.ttf"
      }
    }
  }
}

Diese Konfiguration setzt die Standardschriftart auf helvetica und spezifiziert das Verzeichnis für benutzerdefinierte Schriftarten. Die Helvetica.ttf-Datei wird als reguläre Schriftart für den Helvetica-Schriftstil verwendet.