- 使用html2canvas
- 1.下载 html2canvas
- 2.对应页面引入该插件
- 选项的 html2canvas 呈现,只需调用html2canvas(element, options);)">3.具体用法 (要element使用带有一些(可选)选项的 html2canvas 呈现,只需调用html2canvas(element, options);)
- 4.转为图片并且下载
- 使用问题
参考:https://blog.csdn.net/c_kite/article/details/81364592、https://blog.csdn.net/weixin_40800926/article/details/102961502
使用html2canvas
1.下载 html2canvas
npm install html2canvas
2.对应页面引入该插件
import html2canvas from 'html2canvas';
3.具体用法 (要element使用带有一些(可选)选项的 html2canvas 呈现,只需调用html2canvas(element, options);)
html2canvas(document.body).then(function(canvas) {document.body.appendChild(canvas);})
4.转为图片并且下载
<template><div><div class="container" ref="imageDom">hahahah</div><button @click="toImage">导出</button></div></template># methodstoImage() {html2canvas(this.$refs.imageDom, {backgroundColor: '#ffffff'}).then(canvas => {var imgData = canvas.toDataURL("image/jpeg");this.fileDownload(imgData);})},fileDownload(downloadUrl) {let aLink = document.createElement("a");aLink.style.display = "none";aLink.href = downloadUrl;aLink.download = "监控详情.png";// 触发点击-然后移除document.body.appendChild(aLink);aLink.click();document.body.removeChild(aLink);},
使用问题
toDataURL报错
更改需要绘制的html标签部分
页面下载图片不全
需要查看一下html2canvas的配置文件
html2canvas(htmlDom, {backgroundColor: '#ffffff',logging: false, //日志开关,便于查看html2canvas的内部执行流程width: htmlDom.clientWidth, //需要绘制的大小height: htmlDom.clientHeight, //需要绘制的大小scrollY: 54, // 向下的偏移量scrollX: 0,useCORS: true // 【重要】开启跨域配置}).then(canvas => {// document.body.appendChild(canvas)var imgData = canvas.toDataURL("image/png");this.fileDownload(imgData);/* var image = new Image();image.crossorigin = 'anonymous'image.src = canvas.toDataURL("image/png");return image; */})
参考文档:https://www.jb51.net/html5/726095.html
table中的合并的td展示不出来
在td中的标签的定位变成绝对定位
