使用canvg从svg转换的画布上渲染的图像很模糊

时间:2015-01-08 06:58:47

标签: svg html5-canvas png blurry canvg

我使用canvg将svg元素渲染到画布上并使用jspdf下载它。 下面是我的代码:

svgElement = jQuery('#svg');

canvas = jQuery('<canvas />').attr({
    width: svgElement.width(),
    height: svgElement.height()
}).get(0);
ctx = canvas.getContext("2d");  

canvg(canvas, svgElement.outerHTML(), {ignoreMouse: true, ignoreAnimation: true});

imgData = canvas.toDataURL("image/png");
pdf = new jsPDF('landscape' , 'pt', [svgElement.height(), svgElement.width()]);
pdf.addImage(imgData, 'PNG', 0, 0);     
pdf.save('download.pdf');

但是pdf上的图像看起来很模糊,不像原始图像那样清晰明了(只是忽略背景差异): Original

canvg

我认为这可能是因为canvg将svg渲染到画布上的步骤。但我不知道如何解决它,任何人都可以提供帮助吗?

1 个答案:

答案 0 :(得分:0)

您是否尝试过使用svgToPdf.js?您可以跳过使用此库的步骤,图像可以更清晰。

这是github回购:

https://github.com/CBiX/svgToPdf.js