在数据可视化领域,ECharts 是一款非常流行的 JavaScript 库,它可以帮助我们轻松地创建各种图表。有时候,你可能需要将 ECharts 生成的图表导出为 PDF 格式,以便于分享或者打印。今天,我就来教大家如何轻松地将 ECharts 图表导出为 PDF,并且完美保存图表细节。
一、准备工作
在开始之前,请确保你的项目中已经引入了 ECharts 库。以下是引入 ECharts 的基本步骤:
- 在你的 HTML 文件中添加以下代码来引入 ECharts:
<script src="https://cdn.jsdelivr.net/npm/echarts/dist/echarts.min.js"></script>
- 准备一个用于展示图表的 DOM 元素,例如:
<div id="main" style="width: 600px;height:400px;"></div>
二、创建图表
接下来,使用 ECharts 创建一个图表。这里以柱状图为例:
var myChart = echarts.init(document.getElementById('main'));
var option = {
title: {
text: 'ECharts 柱状图示例'
},
tooltip: {},
legend: {
data:['销量']
},
xAxis: {
data: ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"]
},
yAxis: {},
series: [{
name: '销量',
type: 'bar',
data: [5, 20, 36, 10, 10, 20]
}]
};
myChart.setOption(option);
三、导出图表为 PDF
导出 ECharts 图表为 PDF,我们可以使用 html2canvas 和 jsPDF 两个库。以下是导出步骤:
- 在你的 HTML 文件中添加以下代码来引入
html2canvas和jsPDF:
<script src="https://cdn.jsdelivr.net/npm/html2canvas/dist/html2canvas.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/jspdf/dist/jspdf.umd.min.js"></script>
- 编写导出函数:
function exportChartToPDF() {
html2canvas(document.getElementById('main')).then(function(canvas) {
var contentWidth = canvas.width;
var contentHeight = canvas.height;
// 一页 PDF 可以放 2 个图表
var pageHeight = contentWidth / 592.28 * 841.89;
var left = 0;
var top = 0;
var right = 0;
var bottom = 0;
// 每次生成的 PDF 页数
var count = Math.ceil(contentHeight / pageHeight);
var pdf = new jspdf.jsPDF({
orientation: 'portrait',
unit: 'pt',
format: [contentWidth, contentHeight]
});
for (var i = 0; i < count; i++) {
if (i == 0) {
left = top = 0;
right = contentWidth;
bottom = pageHeight;
} else {
left = -contentWidth;
top = -pageHeight;
right = contentWidth * 2;
bottom = pageHeight * 2;
}
pdf.addImage(canvas.toDataURL('image/jpeg'), 'JPEG', left, top, right - left, bottom - top);
}
pdf.save('ECharts 图表.pdf');
});
}
- 调用导出函数:
exportChartToPDF();
四、总结
通过以上步骤,你就可以轻松地将 ECharts 图表导出为 PDF 格式,并且完美保存图表细节。希望这篇文章能帮助你解决问题,如果你还有其他问题,欢迎在评论区留言。
