【发布时间】:2021-02-09 16:12:07
【问题描述】:
对于我正在进行的项目,我需要将 svg 转换为 png 文件。为此,我在网上找到了多个指南和解释。其中之一可以在这里找到:Exporting D3 charts to PDF
为了将 svg 转换为 png,他们使用以下代码:
let canvas = document.createElement('canvas');
canvg(canvas, svg);
let imgData = canvas.toDataURL('image/png');
但是当我尝试在自己的项目中实现此功能时,我不断收到错误:"TypeError: Cannot call a class as a function"。我在网上找到了多种使用canvg(canvas, svg); 符号的解释。我还阅读了 Github documentation 表单 Canvg 并没有发现任何关于这种类型的符号或替代方法的信息。
我将包导入我的项目的方式如下:
import canvg from "canvg";
这是我用来将 d3 svg 图表转换为 pdf 的完整代码:
exportToPDF() {
let svg = document.getElementsByClassName("svg")[0].innerHTML;
var canvas = document.createElement("canvas");
canvg(canvas, svg);
let imgData = canvas.toDataURL("image/png");
var doc = new jsPDF("l", "pt", [1020, 768]);
doc.addImage(imgData, "PNG", 0, 0, 1020, 768);
doc.save("svg-png-chart.pdf");
}
【问题讨论】:
标签: javascript svg canvg