EXPORT SVG PNG PDF

SVG

导出SVG我采用的是blob(binary large object),代表二进制类型的大对象,将整个SVG图像部分作为blob对象的数据,然后采用createObjectURL()创建DOMString,然后将其写入到链接的href中。

ar svgBlob = new Blob([html],{type:"image/svg+xml"});
var svgUrl = URL.createObjectURL(svgBlob);
target.href = svgUrl;
target.download = "chart.svg";

PNG

由于canvas能够以 .png 或 .jpg 格式保存结果图像,故PNG采用的是先将SVG转化为canvas图像,然后通过canvas图像导出

ar image = new Image();
image.src = 'data:image/svg+xml;base64,'+btoa(unescape(encodeURIComponent(html)));

context.drawImage(image,0,0);
var canvasdata = canvas.toDataURL("image/png");
target.download = "chart.png";
target.href = canvasdata;

PDF

PDF导出调用了jspdf库,可以将JPG、PNG等图形插入页面之中导出PDF。

context.drawImage(image,0,0);
var canvasdata = canvas.toDataURL("image/png");
var doc = new jsPDF('l','mm',[250,350]);
doc.addImage(canvasdata,'PNG',0,0,350,250);
doc.save('chart.pdf');

由于是位图,进行放大之后就会有失真,我也尝试了能不能将SVG作为插入的元素,但jspdf库只支持JPEG格式图片,所以也没有什么好的方法。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容