导出为 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 的请求。
使用导出模块
如需导出大型甘特图,您可以使用 独立导出模块。 如果您拥有 Commercial、Enterprise 或 Ultimate 许可证,则该模块免费;也可以单独购买。
导出为 PDF
要将甘特图导出为 PDF,请按照以下步骤操作:
- 使用 plugins 方法启用 export_api 插件:
gantt.plugins({
export_api: true
});
如果您使用的是 8.0 以下版本的 Gantt,请在页面中引入 https://export.dhtmlx.com/gantt/api.js 以启用在线导出服务,例如:
<script src="codebase/dhtmlxgantt.js"></script>
<script src="https://export.dhtmlx.com/gantt/api.js"></script>
- 然后调用 exportToPDF 方法 导出图表:
<input value="Export to PDF" type="button" onclick='gantt.exportToPDF()'/>/*!*/
<script>
gantt.init("gantt_here");
gantt.parse(demo_tasks);
</script>
导出为 PNG
要将甘特图导出为 PNG 图片,请按照以下步骤操作:
- 使用 plugins 方法启用 export_api 插件:
gantt.plugins({
export_api: true
});
如果您使用的是 8.0 以下版本的 Gantt,请在页面中引入 https://export.dhtmlx.com/gantt/api.js 以启用在线导出服务,例如:
<script src="codebase/dhtmlxgantt.js"></script>
<script src="https://export.dhtmlx.com/gantt/api.js"></script>
- 然后调用 exportToPNG 方法导出图表:
<input value="Export to PNG" type="button" onclick='gantt.exportToPNG()'/>/*!*/
<script>
gantt.init("gantt_here");
gantt.parse(demo_tasks);
</script>
导出方法的参数
exportToPDF 和 exportToPNG 方法接受包含多种可选属性的对象作为参数:
| name | (string) 指定导出文件的名称 |
| skin | (string) 设置导出甘特图的 皮肤 |
| 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) 按原样导出所有甘特图标记,包括自定义元素。默认值为 false。详见下文 |
| callback | (function) 接收包含下载生成的 PDF/PNG 文件 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-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);
}
});
输出文件名
如需自定义导出文件的名称,请在 exportToPDF/exportToPNG 参数中设置 name 属性:
gantt.exportToPDF({
name:"my_beautiful_gantt.pdf"/*!*/
});
输出文件的语言
默认情况下,导出的甘特图使用与页面显示相同的语言。
如需导出为不同语言,请在 exportToPDF/exportToPNG 参数中设置 locale 属性:
gantt.exportToPDF({
name:"mygantt.pdf",
locale:"de" /*!*/
});
导出数据
有两种方式指定导出的 PDF 或 PNG 中包含哪些任务:
定义需导出的任务日期范围
要设置导出包含的任务范围,可在 exportToPDF/exportToPNG 参数中使用 start 和 end 属性:
gantt.exportToPDF({
name:"mygantt.pdf",
start:"01-04-2013",/*!*/
end:"11-04-2013"/*!*/
});
请注意,日期格式由 date_format 配置控制。
设置自定义导出数据源
如果希望导出甘特 图时使用与当前显示不同的数据集,可在 exportToPDF/exportToPNG 方法参数中使用 data 属性:
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"}
]
}
});
请注意,data 参数必须是包含数据的对象,不能直接传递 URL 作为其值。