Export nach PDF
Der Artikel bezieht sich auf den Export von dhtmlxScheduler 4.1+. Wenn Sie dhtmlxScheduler 4.0 oder frühere Versionen verwenden, finden Sie Details hier.
Ab Version 4.1 bietet dhtmlxScheduler einen neuen Ansatz für den Export des Schedulers in das PDF-Format: einen Online-Export-Service.
Der Dienst ist kostenlos, aber die Ausgabe-PDF-Datei enthält das Wasserzeichen der Bibliothek unter der GPL-Lizenz. Falls Sie eine Lizenz erwerben, ist das Export-Ergebnis während der gültigen Support-Periode (12 Monate für alle PRO-Lizenzen) ohne Wasserzeichen verfügbar.
Verwendung von Export-Services
Es gibt mehrere Export-Services. Sie können sie auf Ihrem Computer installieren und Scheduler lokal nach PDF exportieren.
Hinweis: Export-Services sind nicht im Scheduler-Paket enthalten. Lesen Sie den entsprechenden Artikel, um die Nutzungsbedingungen jedes einzelnen zu erfahren.
Grenzen bei der Anforderungsgröße
Es gibt einen gemeinsamen API-Endpunkt https://export.dhtmlx.com/scheduler, der Export-Methoden wie exportToPDF() und exportToPNG() bereitstellt. Die maximale Anforderungsgröße beträgt 10 MB.
Standard-Export nach PDF
Um einen Scheduler als PDF-Dokument zu exportieren, führen Sie die folgenden Schritte aus:
- Um den Online-Export-Service zu verwenden, aktivieren Sie das
export_api-Plugin über dieplugins()Methode:
scheduler.plugins({
export_api: true
});
Wenn Sie eine Scheduler-Version verwenden, die älter als 7.0 ist, müssen Sie die Datei https://export.dhtmlx.com/scheduler/api.js in Ihre Seite einbinden, um den Online-Export-Service zu aktivieren, z. B.:
<script src="codebase/dhtmlxscheduler.js"></script>
<script src="https://export.dhtmlx.com/scheduler/api.js"></script>
- Rufen Sie die
exportToPDF()Methode auf, um Scheduler zu exportieren:
<input value="Export to PDF" type="button" onclick='scheduler.exportToPDF()'/>
Zu den Beispielen
Parameter der Export-Methode
Die exportToPDF() Methode nimmt ein Objekt mit mehreren Eigenschaften als Parameter entgegen. Alle Eigenschaften sind optional:
| name | (string) der Name der Ausgabedatei |
| format | ('A0', 'A1', 'A2', 'A3', 'A4', 'A5') das Format der Ausgabedatei im PDF-Format |
| orientation | ('portrait', 'landscape') legt die Orientierung des Ausgabedokuments fest |
| zoom | (number) legt den Zoomkoeffizienten des Ausgabedokuments fest |
| header | (string) gibt den Header an, der dem Ausgabedokument hinzugefügt wird. Hinweis: Hier können Sie beliebiges HTML verwenden |
| footer | (string) gibt den Footer an, der dem Ausgabedokument hinzugefügt wird. Hinweis: Hier können Sie beliebiges HTML verwenden |
| server | (string) legt den API-Endpunkt für die Anfrage fest. Kann zusammen mit der lokalen Installation des Export-Services verwendet werden. Der Standardwert ist https://export.dhtmlx.com/scheduler |
| additional_settings | (object) ein Objekt mit zusätzlichen Einstellungen. Das Objekt kann folgende Attribute enthalten:
|
Aufruf der Export-Methode mit optionalen Eigenschaften
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 benutzerdefinierten Namen für die Ausgabedatei festzulegen, verwenden Sie die name-Eigenschaft im Parameter der exportToPDF() Methode:
scheduler.exportToPDF({
name: "my_beautiful_scheduler.pdf"
});
Header/Footer der Ausgabedatei
Um der Ausgabedatei PDF einen Header/Footer hinzuzufügen, verwenden Sie die Eigenschaften header/footer im Parameter der exportToPDF() Methode:
Beachten Sie, dass Sie beim Festlegen der Parameter beliebiges HTML verwenden können. Wenn Sie Bilder angeben, denken Sie daran, globale Pfade als Werte des src-Attributs festzulegen.
scheduler.exportToPDF({
name: "myscheduler.pdf",
header: "<h1>My company</h1>",
footer: "<h4>Bottom line</h4>"
});
Benutzerdefinierter Stil für die Ausgabedatei
Um dem Scheduler einen benutzerdefinierten Stil zu verleihen, liefern Sie das Stylesheet mit Ihren benutzerdefinierten CSS-Klassen:
- über einen Link:
scheduler.exportToPDF({
name: "calendar.pdf",
header: '<link rel="stylesheet" href="http://mysite.com/custom.css">'
});
- oder über das 'style'-Tag:
scheduler.exportToPDF({
name: "calendar.pdf",
header: '<style>... benutzerdefinierte CSS-Klassen hier ...</style>'
});
Beachten Sie, dass die oben genannte Lösung für den globalen HTTP-Verweis funktioniert. Wenn Sie CSS-Klassen in einer Intranet-/ lokalen Umgebung verwenden, können Sie alle Stile wie folgt einbetten:
scheduler.exportToPDF({
header: "<style>.tier1{background: red; color:white;}</style>"
});
Export von HTML-Elementen
Beim Export des Schedulers ins PDF-Format ist der Export von HTML-Elementen aufgrund möglicher Sicherheitsbedenken eingeschränkt.
Es gibt HTML-Elemente, die beim Export nicht vollständig erlaubt sind, wie z. B. <canvas>, <svg>, <script> und Bilder mit dem src-Attribut, das ein Base64-Bild enthält. Es gibt jedoch sichere Möglichkeiten, Bilder im SVG- oder Base64-Format zu exportieren:
- Sie können ein
<img/>-Element mit dem src-Attribut verwenden, das eine URL des Bildes im SVG-Format enthält (geeignet für PNG- und JPG-Formate, funktioniert nicht für das Base64-Format), z. B.:
<img src="https://www.svgrepo.com/download/530597/hat.svg">
- Sie können Style-Elemente verwenden, wie background oder background-image und das
url-Attribut mit dem Link zum Bild oder einem Bild im Base64-Format als Wert angeben (geeignet für PNG/JPG/SVG-Formate)
.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 Export-Modul haben und HTML-Elemente exportieren müssen, die von unserem Online-Export-Server nicht unterstützt werden, können Sie eine Support-Anfrage einreichen, um Anweisungen zu erhalten, welche Änderungen Sie an Ihrem Modul vornehmen müssen, um die Einschränkungen zu entfernen. Beachten Sie jedoch, dass Ihr Server gegenüber XSS-Angriffen anfällig wird.