dhtmlxGantt bietet einen Online-Exportdienst, der es ermöglicht, Ihr Gantt-Diagramm entweder als PDF oder als PNG Datei zu speichern.
Der Dienst ist kostenlos nutzbar, jedoch enthalten die exportierten PDF/PNG-Dateien das Wasserzeichen der Bibliothek unter der GPL-Lizenz. Wenn Sie eine gültige Lizenz besitzen, sind die exportierten Dateien während des Supportzeitraums (12 Monate für alle PRO-Lizenzen) wasserzeichenfrei.
Es gibt auch Exportdienste, die lokal auf Ihrem Rechner installiert werden können. Dies ermöglicht den Export von Gantt-Diagrammen in PDF oder PNG, ohne auf den Online-Dienst angewiesen zu sein. Beachten Sie, dass diese Exportdienste nicht im Gantt-Paket enthalten sind. Weitere Informationen zur Nutzung finden Sie im entsprechenden Artikel.
Der Exportdienst hat einige Einschränkungen hinsichtlich der Zeit und der Anfragengröße.
Wenn der Exportvorgang länger als 20 Sekunden dauert, wird er gestoppt und Sie erhalten eine Fehlermeldung wie diese:
Error: Timeout trigger 20 seconds
Wenn mehrere Benutzer gleichzeitig Gantt-Diagramme exportieren, kann der Vorgang verlangsamt werden. Die für die Anfrage eines jeden Benutzers aufgewendete Zeit wird jedoch individuell gezählt.
Der Haupt-API-Endpunkt für alle Exportmethoden (exportToPDF, exportToPNG, exportToMSProject, etc.) ist https://export.dhtmlx.com/gantt. Die maximale Anfragengröße beträgt 10 MB.
Für die Export-/Importdienste von MSProject und Primavera P6 (exportToMSProject / importFromMSProject / exportToPrimaveraP6 / importFromPrimaveraP6) gibt es einen separaten API-Endpunkt https://export.dhtmlx.com/gantt/project, mit einer maximalen Anfragengröße von 40 MB.
Wenn Sie mit großen Diagrammen arbeiten, sollten Sie ein eigenständiges Exportmodul verwenden. Das Exportmodul ist kostenlos, wenn Sie über eine Commercial, Enterprise oder Ultimate Lizenz verfügen. Alternativ können Sie das Modul separat erwerben.
Für weitere Details zur Verwendung des Exportmoduls für PDFs lesen Sie diese Anleitung.
Um Ihr Gantt-Diagramm als PDF-Dokument zu speichern, folgen Sie diesen Schritten:
gantt.plugins({
export_api: true
});
Wenn Sie eine Gantt-Version älter als 8.0 verwenden, fügen Sie https://export.dhtmlx.com/gantt/api.js zu Ihrer Seite hinzu, um den Online-Exportdienst zu aktivieren:
<script src="codebase/dhtmlxgantt.js"></script>
<script src="https://export.dhtmlx.com/gantt/api.js"></script>
<input value="Export to PDF" type="button" onclick='gantt.exportToPDF()'>
<script> gantt.init("gantt_here");
gantt.parse(demo_tasks);
</script>
Related sample: Export data from Gantt
Um Ihr Gantt-Diagramm als PNG-Bild zu speichern, folgen Sie diesen Schritten:
gantt.plugins({
export_api: true
});
Wenn Sie eine Gantt-Version älter als 8.0 verwenden, fügen Sie https://export.dhtmlx.com/gantt/api.js zu Ihrer Seite hinzu, um den Online-Exportdienst zu aktivieren:
<script src="codebase/dhtmlxgantt.js"></script>
<script src="https://export.dhtmlx.com/gantt/api.js"></script>
<input value="Export to PNG" type="button" onclick='gantt.exportToPNG()'>
<script> gantt.init("gantt_here");
gantt.parse(demo_tasks);
</script>
Related sample: Export data from Gantt
Die Methoden exportToPDF und exportToPNG akzeptieren ein Objekt mit mehreren optionalen Eigenschaften:
name | (string) Name der Ausgabedatei |
skin | (string) Der Skin für das ausgegebene Gantt-Diagramm |
locale | (string) Sprache für das ausgegebene Gantt-Diagramm |
start | (string) Startdatum für den Datenbereich in der Ausgabe. Das Datumsformat wird durch die date_format Konfiguration definiert |
end | (string) Enddatum für den Datenbereich in der Ausgabe. Das Datumsformat wird durch die date_format Konfiguration definiert |
data | (object) Benutzerdefinierte Datenquelle für die Ausgabe |
header | (string) Kopfzeile, die dem PDF-Bild hinzugefügt wird. HTML ist erlaubt |
footer | (string) Fußzeile, die dem PDF-Bild hinzugefügt wird. HTML ist erlaubt |
server | (string) API-Endpunkt für die Anfrage. Nützlich für lokal installierte Exportdienste. Standard: https://export.dhtmlx.com/gantt |
raw | (boolean) Exportiert das gesamte Gantt-Markup so, wie es ist, einschließlich benutzerdefinierter Elemente. Standard: false. Mehr Details |
callback | (function) Ermöglicht es Ihnen, die URL für die generierte PDF/PNG-Datei zu erhalten. Der Callback erhält ein JSON-Objekt mit einer URL-Eigenschaft |
additional_settings | (object) Zusätzliche Einstellungen für die Methoden exportToPDF() oder exportToPNG(). Beinhaltet Attribute wie Format, Ausrichtung und Seitengröße. |
Aufrufen von Exportmethoden mit optionalen Eigenschaften
gantt.exportToPDF({
name:"mygantt.pdf",
header:"<h1>My company</h1>",
footer:"<h4>Bottom line</h4>",
locale:"en",
start:"01-04-2013",
end:"11-04-2013",
skin:'terrace',
data:{ },
server:"https://myapp.com/myexport/gantt",
raw:true,
callback: function(res){
alert(res.url);
}
});
gantt.exportToPNG({
name:"mygantt.png",
header:"<h1>My company</h1>",
footer:"<h4>Bottom line</h4>",
locale:"en",
start:"01-04-2013",
end:"11-04-2013",
skin:'terrace',
data:{ },
server:"https://myapp.com/myexport/gantt",
raw:true,
callback: function(res){
alert(res.url);
}
});
Um Ihrer Ausgabedatei einen benutzerdefinierten Namen zu geben, verwenden Sie die name Eigenschaft in den Methoden exportToPDF/exportToPNG:
gantt.exportToPDF({
name:"my_beautiful_gantt.pdf"});
Standardmäßig verwendet das exportierte Gantt-Diagramm dieselbe Sprache wie auf der Seite angezeigt. Um eine andere Sprache festzulegen, verwenden Sie die locale Eigenschaft in den Methoden exportToPDF/exportToPNG:
gantt.exportToPDF({
name:"mygantt.pdf",
locale:"de" });
Sie können steuern, welche Aufgaben in der exportierten PDF- oder PNG-Datei erscheinen, auf zwei Arten:
Um den Bereich der Aufgaben festzulegen, die im Export enthalten sind, verwenden Sie die start und end Eigenschaften in den Methoden exportToPDF/exportToPNG:
gantt.exportToPDF({
name:"mygantt.pdf",
start:"01-04-2013", end:"11-04-2013"});
Das Datumsformat wird durch die date_format Konfiguration bestimmt.
Wenn Sie Ihr Gantt-Diagramm mit einem benutzerdefinierten Datensatz exportieren müssen (anders als der ursprünglich im Diagramm angezeigte), können Sie die data Eigenschaft in den Parametern der Methoden exportToPDF/exportToPNG verwenden. Hier ist ein Beispiel:
gantt.exportToPDF({
data:{ data:[
{id:1, text:"Project #1", start_date:"01-04-2013", duration:18},
{id:2, text:"Task #1", start_date:"02-04-2013",duration:8, parent:1},
{id:3, text:"Task #2", start_date:"11-04-2013",duration:8, parent:1}
],
links:[
{id:1, source:1, target:2, type:"1"},
{id:2, source:2, target:3, type:"0"},
{id:3, source:3, target:4, type:"0"},
{id:4, source:2, target:5, type:"2"}
]
}
});
Beachten Sie, dass der data Parameter nur ein Datenobjekt akzeptiert, keine URL.
Standardmäßig verwendet das exportierte Gantt-Diagramm denselben Skin wie auf der Seite angezeigt. Wenn Sie einen anderen Skin für Ihren PNG- oder PDF-Output anwenden möchten, können Sie die skin Eigenschaft in den Parametern der Methoden exportToPDF/exportToPNG verwenden:
gantt.exportToPDF({
name:"mygantt.pdf",
skin:"material" });
Sehen Sie sich die vollständige Liste der verfügbaren Gantt-Skins an.
Um eine Kopf- oder Fußzeile in die exportierte PNG- oder PDF-Datei einzufügen, verwenden Sie die header und footer Eigenschaften in den Parametern der Methoden exportToPDF/exportToPNG:
Sie können HTML für diese Parameter verwenden. Stellen Sie beim Einfügen von Bildern sicher, dass das "src"-Attribut auf einen globalen Pfad verweist.
gantt.exportToPDF({
name:"mygantt.pdf",
header:"<h1>My company</h1>", footer:"<h4>Bottom line</h4>"});
Sie können benutzerdefinierte Stile auf das exportierte Gantt anwenden, indem Sie ein Stylesheet mit Ihren CSS-Klassen auf eine der folgenden Arten bereitstellen:
gantt.exportToPDF({
name:"calendar.pdf",
header:'<link rel="stylesheet" href="http://mysite.com/custom.css">' });
gantt.exportToPDF({
name:"calendar.pdf",
header:'<style>... benutzerdefinierte CSS-Klassen hier ...</style>' });
Beachten Sie, dass die obigen Methoden für global zugängliche HTTP-Referenzen funktionieren. Für lokale oder Intranet-Umgebungen können Sie Stile direkt einbetten:
gantt.exportToPDF({
header:"<style>.tier1{background: red; color:white;}</style>"
});
Für weitere Beispiele siehe den Leitfaden Wie man ein Ressourcen-Diagramm oder benutzerdefinierte Stile in der exportierten PDF-Datei hinzufügt.
Wenn Ihre Stile über mehrere Dateien verstreut und nicht öffentlich zugänglich sind, können Sie sie für den Export zusammenführen. Das document.styleSheets Objekt auf einer HTML-Seite enthält alle Stile. Für Stile oder Links von derselben Seite können Sie sie sammeln und in die header einfügen. Hier ist ein Beispiel:
const styles = []
for (el in document.styleSheets) {
try {
const rules = (document.styleSheets[el]).cssRules;
for (rule in rules) {
styles.push(rules[rule].cssText)
}
}
catch (e) { }
}
gantt.exportToPDF({
raw: true,
header: "<style>" + styles.join(" ") + "</style>"
});
Related sample: Exportieren von Gantt mit benutzerdefinierten Symbolen als PDF
Related sample: Exportieren von Gantt mit Ressourcenlastdiagramm als PDF ohne Angabe von Stilen
Standardmäßig wird das Gantt-Diagramm basierend auf seiner Konfiguration und den geladenen Daten exportiert, ohne benutzerdefinierte Elemente und einige Vorlagen. Um das gesamte Gantt-Markup, einschließlich benutzerdefinierter Elemente, zu exportieren, verwenden Sie die raw:true Eigenschaft in den Parametern der Methoden exportToPDF/exportToPNG:
gantt.exportToPDF({
raw:true
});
Beachten Sie, dass benutzerdefinierte Elemente benutzerdefinierte Stile benötigen, um korrekt angezeigt zu werden. Die Verwendung dieses Modus kann die Größe der API-Anfrage erhöhen. Große Diagramme könnten das Online-Exportlimit von 10 MB überschreiten, was einen lokal installierten Exportdienst mit einer erhöhten Anfragengröße erfordert. Überprüfen Sie die Systemanforderungen für die lokale Installation.
Beim Exportieren des Gantt-Diagramms in PNG oder PDF gibt es einige Einschränkungen hinsichtlich HTML-Elementen aufgrund potenzieller Sicherheitsprobleme. Bestimmte Elemente wie <canvas>
, <svg>
, <script>
und Base64-Bilder im src-Attribut werden nicht vollständig unterstützt. Es gibt jedoch sichere Möglichkeiten, Bilder in SVG- und Base64-Formaten einzuschließen:
<img>
-Element mit dem src-Attribut, das auf eine SVG-Bild-URL verweist (funktioniert für PNG- und JPG-Formate, nicht jedoch für Base64):<img src=https://www.svgrepo.com/download/530597/hat.svg>
url
, die auf ein Bild oder Base64-Daten verweist (funktioniert für PNG-, JPG- und 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;
}
Related sample: Exportieren sicherer und unsicherer HTML-Elemente als PDF
Wenn Sie ein Exportmodul haben und unsupportete HTML-Elemente einfügen müssen, können Sie den Support um Hilfe bitten, um Ihr Modul anzupassen. Beachten Sie, dass solche Änderungen Ihren Server für XSS-Angriffe anfällig machen könnten.
Zurück nach oben