Export nach PDF

Dieser Artikel behandelt den Export mit dhtmlxScheduler Version 4.1 und neuer. Für Versionen 4.0 oder älter lesen Sie bitte diese Anleitung.

Seit Version 4.1 bietet dhtmlxScheduler eine neue Möglichkeit, den Scheduler als PDF-Datei zu exportieren, indem ein Online-Exportdienst verwendet wird.

Der Dienst ist kostenlos nutzbar, aber unter der GPL-Lizenz generierte PDFs enthalten ein Wasserzeichen der Bibliothek. Beim Kauf einer Lizenz wird das Wasserzeichen während des aktiven Supportzeitraums entfernt (12 Monate für alle PRO-Lizenzen).

Verwendung von Exportdiensten

Es stehen mehrere Exportdienste zur Verfügung, die lokal auf Ihrem Rechner installiert werden können, um den Scheduler nach PDF zu exportieren.

Beachten Sie, dass Exportdienste unabhängig vom Scheduler-Paket sind. Weitere Informationen zu den Nutzungsbedingungen finden Sie im zugehörigen Artikel.

Grenzen der Anfragegröße

Der API-Endpunkt https://export.dhtmlx.com/scheduler verarbeitet Exportanfragen (exportToPDF, exportToPNG, usw.). Die maximal zulässige Anfragegröße beträgt 10 MB.

Standard-Export nach PDF

Um den Scheduler als PDF zu exportieren, gehen Sie wie folgt vor:

  • Aktivieren Sie das export_api-Plugin mit der Methode plugins:
scheduler.plugins({
    export_api: true
});

Für Scheduler-Versionen vor 7.0 binden Sie das Skript https://export.dhtmlx.com/scheduler/api.js auf Ihrer Seite ein, um den Online-Exportdienst zu aktivieren, zum Beispiel:

<script src="codebase/dhtmlxscheduler.js"></script>
<script src="https://export.dhtmlx.com/scheduler/api.js"></script>

  • Verwenden Sie die exportToPDF-Methode, um den Export auszuführen:
<input value="Export to PDF" type="button" onclick='scheduler.exportToPDF()'>

Related sample:  Export to PDF/PNG

Parameter der Exportmethode

Die exportToPDF()-Methode akzeptiert ein optionales Objekt als Parameter mit verschiedenen Eigenschaften:


Beispielaufruf von exportToPDF mit Optionen

scheduler.exportToPDF({
    name:"myscheduler.pdf",
    format:"A4",
    orientation:"portrait",
    zoom:1,
    header:"<h1>My company</h1>",
    footer:"<h4>Bottom line</h4>",
    server:"https://myapp.com/myexport/scheduler"
});

Name der Ausgabedatei

Um einen eigenen Dateinamen für das exportierte PDF festzulegen, setzen Sie die name-Eigenschaft in den exportToPDF-Optionen:

scheduler.exportToPDF({
    name:"my_beautiful_scheduler.pdf"});

Kopf-/Fußzeile der Ausgabedatei

Kopf- und Fußzeilen können dem exportierten PDF hinzugefügt werden, indem die Eigenschaften header und footer in den exportToPDF-Optionen verwendet werden:

In diesen Eigenschaften kann beliebiges HTML verwendet werden. Wenn Sie Bilder einfügen, achten Sie darauf, für das "src"-Attribut absolute URLs zu verwenden.

scheduler.exportToPDF({
    name:"myscheduler.pdf",
    header:"<h1>My company</h1>",    footer:"<h4>Bottom line</h4>"});

Eigener Stil für die Ausgabedatei

Eigene Styles können angewendet werden, indem Sie ein Stylesheet mit Ihren CSS-Klassen einbinden:

  • Durch Verlinkung auf ein externes Stylesheet:
scheduler.exportToPDF({
    name:"calendar.pdf",
    header:'<link rel="stylesheet" href="http://mysite.com/custom.css">' });
  • Oder durch Einbetten von Styles innerhalb eines <style>-Tags:
scheduler.exportToPDF({
    name:"calendar.pdf",
    header:'<style>... custom css classes here ...</style>' });

Beachten Sie, dass dieser Ansatz mit global zugänglichen HTTP-URLs funktioniert. Für lokale oder Intranet-Umgebungen können Sie alle Styles direkt einbetten, zum Beispiel:

scheduler.exportToPDF({
    header:"<style>.tier1{background: red; color:white;}</style>"
});

Export von HTML-Elementen

Beim Export des Schedulers nach PDF gibt es einige Einschränkungen bei HTML-Elementen aus Sicherheitsgründen.

Bestimmte Elemente wie <canvas>, <svg>, <script> und Bilder mit Base64-codierten src-Attributen werden nicht vollständig unterstützt. Es gibt jedoch sichere Alternativen für den Export von Bildern im SVG- und Base64-Format:

  • Verwenden Sie ein <img>-Tag mit einem src-Attribut, das auf eine SVG-Bild-URL verweist (funktioniert mit PNG- und JPG-Exporten, aber nicht mit Base64), zum Beispiel:
<img src=https://www.svgrepo.com/download/530597/hat.svg>
  • Verwenden Sie CSS-Styles wie background oder background-image mit einer url(), die auf eine Bild-URL oder einen Base64-String verweist (funktioniert mit PNG, JPG und SVG):
.red {
    background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAABmJLR0QA/wD/AP+gvaeTAAAAB3RJTUUH1ggDCwMADQ4NnwAAAFVJREFUGJWNkMEJADEIBEcbSDkXUnfSgnBVeZ8LSAjiwjyEQXSFEIcHGP9oAi+H0Bymgx9MhxbFdZE2a0s9kTZdw01ZhhYkABSwgmf1Z6r1SNyfFf4BZ+ZUExcNUQUAAAAASUVORK5CYII=") 100%/contain no-repeat;
    display: inline-block;
    width: 32px;
    height: 32px;
}

Wenn Sie ein eigenes Exportmodul haben und nicht unterstützte HTML-Elemente exportieren müssen, können Sie den Support kontaktieren, um Hinweise zur Anpassung Ihres Moduls zu erhalten, um die Einschränkungen zu umgehen. Beachten Sie, dass dies Ihren Server XSS-Sicherheitsrisiken aussetzen kann.

Nach oben