在开发报表导出等项目模块时,常常需要把浏览器中看到的图表等保存为图片,方法很多,这里主要说说如何用 JS 来保存图片。
方法一:用插件 html2canvas 和 canvas2image。
从网上下载插件 html2canvas 插件,也可以在这里下载。
下载后放入到项目中,在需要导出图片的页面中引入 html2canvas.js 和 canvas2image.js。
保存方法:
- html2canvas($("#id_div"), {
- onrendered: function(canvas) {
- Canvas2Image.saveAsPNG(canvas, 300, 200);
- }
- });
如果发生如下错误:
Uncaught ReferenceError: html2canvas is not defined(…)
说明引入插件太晚,需要把引入的 js 向前挪,让其插件先引入,再引入画面中的其它插件即可。
canvas2image.js 中还有一些其它保存及转换方法,按照自己的需求选择即可,详细如下:
- // 保存图片
- Canvas2Image.saveAsImage(canvasObj, width, height, type)
- Canvas2Image.saveAsPNG(canvasObj, width, height)
- Canvas2Image.saveAsJPEG(canvasObj, width, height)
- Canvas2Image.saveAsGIF(canvasObj, width, height)
- Canvas2Image.saveAsBMP(canvasObj, width, height)
- // 转换图片
- Canvas2Image.convertToImage(canvasObj, width, height, type)
- Canvas2Image.convertToPNG(canvasObj, width, height)
- Canvas2Image.convertToJPEG(canvasObj, width, height)
- Canvas2Image.convertToGIF(canvasObj, width, height)
- Canvas2Image.convertToBMP(canvasObj, width, height)
其它方法,待补充。。。
Good Luck!