导出为 PDF 和 PNG
dhtmlxGantt 提供一个在线导出服务,允许您将甘特图导出为 PDF 或 PNG 格式。
该服务是免费的,但输出的 PDF/PNG 文件将包含基于 GPL 许可的库水印。 如果您购买许可证,导出的结果在有效支持期内(所有 PRO 许可证为 12 个月)将不包含水印。
有多种导出服务可用。您可以在本地计算机上安装它们,并将甘特图导出为 PDF 或 PNG。本地导出服务并不包含在 Gantt 包中, 请阅读 相应的文章 以了解每种服务的使用条款。
在线导出服务的限制
导出服务有时间与请求大小的限制。
时间限制
如果处理时间超过 20 秒,导出将被取消,并出现以下错误:
Error: Timeout trigger 20 seconds
如果多人同时导出甘特图,处理时间可能比平时长一些。但没关系,因为来自特定用户的导出请求所花费的时间将单独计数。
请求大小限制
有一个通用的 API 端点 https://export.dhtmlx.com/gantt,用于所有导出方法(exportToPDF、exportToPNG、exportToMSProject 等)。最大请求大小为 10 MB。
还有一个单独的 API 端点 https://export.dhtmlx.com/gantt/project,专门用于 MSProject 与
Primavera P6 的导出/导入服务(仅限 exportToMSProject / importFromMSProject / exportToPrimaveraP6 / importFromPrimaveraP6)。最大请求大小:40 MB。
使用导出模块
如果您需要导出较大的图表,可以使用一个 standalone export module。 如果您是通过 Commercial、Enterprise 或 Ultimate 许可获取 Gantt,则导出模块免费提供,或者您也可以 单独购买该模块。
Read more on the usage of the export module for PDF.
Export to PDF
要将甘特图导出为 PDF 文档,请执行以下步骤:
- 要使用导出/导入功能,请通过 plugins 方法启用 export_api 插件:
gantt.plugins({
export_api: true
});
它允许您使用在线导出服务或 本地导出模块。
如果您使用的 Gantt 版本低于 8.0,需要在页面中包含 https://export.dhtmlx.com/gantt/api.js 以启用导出功能,例如:
<script src="codebase/dhtmlxgantt.js"></script>
<script src="https://export.dhtmlx.com/gantt/api.js"></script>
- 调用 exportToPDF 方法将甘特图导出为 PDF:
<input value="Export to PDF" type="button" onclick='gantt.exportToPDF()'/>
<script>
gantt.init("gantt_here");
gantt.parse(demo_tasks);
</script>
相关示例: Export data from Gantt
Export to PNG
要将甘特图导出为 PNG 图像,执行以下步骤:
- 要使用在线导出服务,请通过 plugins 方法启用 export_api 插件:
gantt.plugins({
export_api: true
});
如果您使用的 Gantt 版本低于 8.0,需要在页面中包含 https://export.dhtmlx.com/gantt/api.js 以启用在线导出服务,例如:
<script src="codebase/dhtmlxgantt.js"></script>
<script src="https://export.dhtmlx.com/gantt/api.js"></script>
- 调用 exportToPNG 方法将甘特图导出为 PNG:
<input value="Export to PNG" type="button" onclick='gantt.exportToPNG()'/>
<script>
gantt.init("gantt_here");
gantt.parse(demo_tasks);
</script>
相关示例: Export data from Gantt
导出方法的参数
exportToPDF 与 exportToPNG 方法接收一个对象作为参数,该对象包含若干属性(所有属性均为可选):
| name | (string) 输出文件的名称 |
| skin | (string) 输出甘特图的 skin |
| locale | (string) 设置输出甘特图所使用的语言 |
| start | (string) 设置将要在输出甘特图中显示的数据范围的起始日期。日期格式由 date_format 配置定义 |
| end | (string) 设置将要在输出甘特图中显示的数据范围的结束日期。日期格式由 date_format 配置定义 |
| data | (object) 设置将在输出甘特图中显示的自定义数据源 |
| header | (string) 指定将添加到输出 PDF 图像的页眉。注意,您可以在此处使用任意 HTML |
| footer | (string) 指定将添加到输出 PDF 图像的页脚。注意,您可以在此处使用任意 HTML |
| server | (string) 设置请求的 API 端点。可与导出服务的本地安装一起使用。默认值为 https://export.dhtmlx.com/gantt |
| raw | (boolean) 定义将按原样导出所有 Gantt 标记与自定义元素。false 作为默认值。 在下文阅读详情 |
| callback | (function) 如果您希望接收生成的 PDF/PNG 文件的下载 URL,可以使用 callback 属性。它接收一个带有 url 属性的 JSON 对象 |
| additional_settings | (object) 一个包含 exportToPDF() 方法的附加设置的对象。该对象可包含以下属性:
|
| additional_settings | (object) 一个包含 exportToPNG() 方法的附加设置的对象。该对象可包含以下属性:
|
gantt.exportToPDF({
name: "mygantt.pdf",
header: "<h1>My company</h1>",
footer: "<h4>Bottom line</h4>",
locale: "en",
start: "01-04-2026",
end: "11-04-2026",
skin: "terrace",
data: {},
server: "https://myapp.com/myexport/gantt",
raw: true,
callback: (res) => {
alert(res.url);
}
});
gantt.exportToPNG({
name: "mygantt.png",
header: "<h1>My company</h1>",
footer: "<h4>Bottom line</h4>",
locale: "en",
start: "01-04-2026",
end: "11-04-2026",
skin: "terrace",
data: {},
server: "https://myapp.com/myexport/gantt",
raw: true,
callback: (res) => {
alert(res.url);
}
});
输出文件的名称
要为输出文件设置自定义名称,请在 exportToPDF/exportToPNG 方法的参数中使用 name 属性:
gantt.exportToPDF({
name: "my_beautiful_gantt.pdf"
});
输出文件的语言
默认情况下,Gantt 图将以页面显示的语言导出。
要为输出文件设置自定义语言,请在 exportToPDF/exportToPNG 方法的参数中使用 locale 属性:
gantt.exportToPDF({
name: "mygantt.pdf",
locale: "de"
});