Export nach PDF (Version 4.0)

Dieser Artikel behandelt das Exportieren mit dhtmlxScheduler 4.0 und früheren Versionen. Für Versionen ab 4.1 finden Sie weitere Informationen hier.

Ab Version 4.1 hat dhtmlxScheduler eine neue Methode zum Exportieren des Schedulers als PDF eingeführt — einen Online-Exportdienst.

Installation

Hier finden Sie die verfügbaren Pakete für verschiedene Plattformen:

Related sample:  Export to PDF [Legacy]

Notwendige Einbindungen

Um den PDF-Export auf der Scheduler-Seite zu aktivieren, müssen Sie die entsprechende Erweiterung aktivieren:

scheduler.plugins({
    pdf: true
});

Export auslösen

Um Schedulerdaten als PDF zu exportieren, fügen Sie einen Button hinzu, der die toPDF()-Methode aufruft. Diese Methode benötigt die URL zum zuvor installierten Skript:

<input type="button" name="save" value="save" 
onclick="scheduler.toPDF('path/to/folder/generate.php')" 
style="right:300px; width:80px; position:absolute; top:1px;">

Dienst konfigurieren

Für die Konfiguration der Exportoptionen sind Anpassungen auf Client- und Serverseite erforderlich.

Clientseite

Die toPDF()-Methode startet den Exportprozess:

scheduler.toPDF(path, color, header, footer);

Parameter:

  • path – (url) URL, die auf die PHP-Datei verweist, die für die PDF-Erstellung zuständig ist. Weitere Details unten.
  • color – ('color', 'gray', 'bw', 'custom', 'fullcolor') bestimmt das Farbschema:
    • 'color' – Vollfarbe (Standard).
    • 'gray' – Graustufen.
    • 'bw' – Nur Schwarzweiß.
    • 'custom' – ermöglicht eine benutzerdefinierte Farbzuordnung (erfordert Anpassung in PHP, siehe unten).
    • 'fullcolor' – verwendet die tatsächlichen Hintergrund- und Textfarben aus dem Scheduler.
  • header – (boolean, optional) gibt an, ob ein Seitenkopf hinzugefügt werden soll. Standard ist false. Weitere Informationen unten.
  • footer – (boolean, optional) gibt an, ob eine Fußzeile hinzugefügt werden soll. Standard ist false. Siehe unten.

Zum Beispiel ruft folgende Zeile in Ihrer HTML-Seite toPDF() mit einem Graustufen-Farbschema auf:

scheduler.toPDF('path/to/folder/generate.php','gray');

Serverseite

Die oben referenzierte generate.php-Datei verarbeitet die Exportoptionen.

Ein minimales Beispiel sieht so aus:

$scPDF = new schedulerPDF();
$scPDF->printScheduler($xml);

Vor dem Aufruf von printScheduler() können verschiedene benutzerdefinierte Einstellungen vorgenommen werden:

Elementgrößen:

// Höhe des Tagescontainer-Headers in der Monatsansicht
$scPDF->monthDayHeaderHeight = 6;
// Höhe des Monats-Headers
$scPDF->monthHeaderHeight = 8;
// Höhe des Monatsnamens-Containers in der Jahresansicht
$scPDF->yearMonthHeaderHeight = 8;
// Zeilenhöhe in der Agenda-Ansicht
$scPDF->agendaRowHeight = 6;
// Höhe des Headers in Tages- und Wochenansichten
$scPDF->dayTopHeight = 6;
// Breite der linken Skala in Tages- und Wochenansichten
$scPDF->dayLeftWidth = 16;

Schriftgröße:

// Einstellungen für Schriftgrößen
$scPDF->monthHeaderFontSize = 9;
$scPDF->monthDayHeaderFontSize = 8;
$scPDF->monthEventFontSize = 7;
$scPDF->yearHeaderFontSize = 8;
$scPDF->yearFontSize = 8;
$scPDF->agendaFontSize = 8;
$scPDF->dayHeaderFontSize = 7;
$scPDF->dayScaleFontSize = 8;
$scPDF->dayEventHeaderFontSize = 7;
$scPDF->dayEventBodyFontSize = 7;
$scPDF->todayFontSize = 11;

Benutzerdefinierte Farben (verwenden Sie 'custom' als Farbzuordnung auf der Clientseite):

$scPDF->lineColor = '586A7E';
$scPDF->bgColor = 'C2D5FC';
$scPDF->dayHeaderColor = 'EBEFF4';
$scPDF->dayBodyColor = 'FFFFFF';
$scPDF->dayHeaderColorInactive = 'E2E3E6';
$scPDF->dayBodyColorInactive = 'ECECEC';
$scPDF->headerTextColor = '2F3A48';
$scPDF->textColor = '2F3A48';
$scPDF->eventTextColor = '887A2E';
$scPDF->eventBorderColor = 'B7A543';
$scPDF->eventColor = 'FFE763';
$scPDF->todayTextColor = '000000';
$scPDF->scaleColorOne = 'FCFEFC';
$scPDF->scaleColorTwo = 'DCE6F4';
$scPDF->yearDayColor = 'EBEFF4';
$scPDF->yearDayColorInactive = 'd6d6d6';

Kopf- und Fußzeilen:

// Höhe des Headers
$scPDF->headerImgHeight = 40;
// Höhe der Fußzeile
$scPDF->footerImgHeight = 40;
// Pfad zum Header-Bild
$scPDF->headerImg = './header.png';
// Pfad zum Footer-Bild
$scPDF->footerImg = './footer.png';

Kopf- und Fußzeile

Benutzerdefinierte Kopf- und Fußzeilen können auf jeder Seite hinzugefügt werden, indem Sie diese Schritte befolgen:

  • Erstellen Sie die Bilder "header.png" und "footer.png".
  • Platzieren Sie diese Bilder im gleichen Verzeichnis wie generate.php.
  • Aktualisieren Sie auf der Clientseite den Aufruf von toPDF() wie folgt:
scheduler.toPDF(url, "color", true, true);

Dadurch werden "header.png" und "footer.png" als Kopf- bzw. Fußzeile auf jeder Seite des erzeugten PDFs eingefügt.

Fehlerberichterstattung

Falls die PDF-Erstellung fehlschlägt, wird eine Datei namens "error_report_xxxx.xml" erstellt. Bitte fügen Sie diese Datei bei der Fehlerberichterstattung bei.

Wenn die Ausgabe nicht fehlschlägt, aber Probleme zeigt, können Sie das Debugging in generate.php aktivieren, indem Sie:

$debug = false;

zu

$debug = true;

ändern.

Dadurch wird eine Datei "debug_xxxxx.xml" erzeugt, die Sie bei der Fehlerberichterstattung mitsenden sollten.

Nach oben