想要实现orgChart图表下载功能,可以使用html2canvas
库将OrgChart容器转换为图像数据,然后使用a
标签的download
属性将图像数据保存为本地文件。
html代码:
<span onclick="downloadImg()">下载</span>
<div id="orgChartBlock"></div>
js代码:
<script>
var orgChartContainer = document.getElementById("orgChartBlock");
var orgData = {
name: "John Doe",
children: [
{ name: "Jane Smith" },
{ name: "Bob Johnson" }
]
};
var orgChart = new OrgChart(orgChartContainer, {
data: orgData
});
function downloadImg() {
html2canvas(orgChartContainer).then(function(canvas) {
var imgData = canvas.toDataURL("image/png");
var link = document.createElement("a");
link.href = imgData;
link.download = "orgChart.png";
link.click();
});
}
</script>
主要的就是在downloadImg方法中的内容,其中orgChartContainer是orgChart画图的容器;如果是图片内容超出容器导致的下载图片不完整的话,可以使用我们自己设置的容器的下一层,也就是orgChart自己生成的<div class="orgChart"></div>这一层;即orgChartContainer可改为:
var orgChartContainer = document.getElementsByClassName('orgChart')[0]
这样下载的图片就是完整的了。
注意:需要使用html2canvas.js来完成该功能,需要额外下载html2canvas!!!