需要用到html2canvas插件

安装插件

npm install html2canvas

在需要的页面引入插件

import html2canvas from "html2canvas";

在需要转换的元素上绑定ref的值,(这里这个元素内包括元素本身的所有样式,都会被转换)

<el-button type="primary" @click="export">导出图片</el-button><div ref="exportCanvas"><p>123456789</p></div>
export() {html2canvas(this.$refs.exportCanvas, {allowTaint: false, // 是否允许跨域图像污染画布useCORS: true, // 使用CO RS从服务器加载图像,必须为true否则img图片可能显示不出来// x: 裁剪画布x坐标,// y: 裁剪画布y坐标,}).then((canvas) => {// 点击保存操作const link = document.createElement("a");link.href = canvas.toDataURL();link.setAttribute("download", "导出图片名称" + ".png");link.style.display = "none";document.body.appendChild(link);link.click();});},

2022-12-28补充,将该方法封装为公共组件

//file-saver 文件处理  https://www.npmjs.com/package/file-saver
import { saveAs } from "file-saver";
import html2canvas from "html2canvas";
/*** 构造树型结构数据* @param {string} id 要下载的dom id * @param {string} fileName 下载的图片名称*/
export function downHtmlImg(domId, fileName) {let dom = document.getElementById(domId)//将html转换成画布,再用file-saver插件下载html2canvas(dom, {allowTaint: false, //默认为false,是否允许跨域图像污染画布useCORS: true, // 使用CO RS从服务器加载图像,必须为true否则img图片可能显示不出来// imageTimeout:0,  //加载图像的超时时间(以毫秒为单位)。设置0为禁用超时。// x: 裁剪画布x坐标,// y: 裁剪画布y坐标,// scale: 2.1, //每个设备的window.devicePixelRatio的值不尽一样,想清晰就调高,想压缩大小就调低。但调的越高,图片的生成时间就越长。}).then(function(canvas) {// 改用file-saver插件下载文件,用使用document对象属性和方法保存的个别手机(小米)会下载失败且卡canvas.toBlob(function(blob) {saveAs(blob, fileName + ".png"); //格式默认png});});
}//在组件中使用
//import { downHtmlImg } from "@/utils/downHtmlImg";
//   绑定点击事件,传入domID,要下载的文件名
//   downHtmlImg(domId, fileName) {
//      downHtmlImg(domId, fileName);
//   },// 传统使用html2canvas下载图片,缺点:过慢且卡,一些手机会下载失败,因为是直接使用Document 对象属性和方法保存到本地
// let dom = document.getElementById(id)
// html2canvas(dom, {
//   allowTaint: false, //默认为false,是否允许跨域图像污染画布
//   useCORS: true, // 使用CO RS从服务器加载图像,必须为true否则img图片可能显示不出来
//   // imageTimeout:0,  //加载图像的超时时间(以毫秒为单位)。设置0为禁用超时。
//   // x: 裁剪画布x坐标,
//   // y: 裁剪画布y坐标,
//   scale: 1.3,
// })
//   .then((canvas) => {
//     // 点击保存操作
//     const link = document.createElement("a");  //创建创建a元素节点。
//     link.href = canvas.toDataURL();   //让a元素链接   指向画布的返回一个包含图片展示的 数据URL。可以使用 type 参数其类型,默认为 PNG 格式。
//     link.setAttribute("download", "全天数据报表" +'.png');  创建或改变某个新属性。
//     link.style.display = "none";   //让a元素样式为空
//     document.body.appendChild(link);  //向节点的子节点列表的末尾添加新的子节点。
//     link.click();  //触发a元素
//   })

vue2将html元素转换成图片相关推荐

  1. JavaScript实现React实现网页转换成图片截屏下载

    最近有项目的需求需要把网站内HTML内容转换成图片保存下载,找了一圈发现一个不错的插件HTML-to-image,npm 包地址:Html-to-image NPM | npm.io,该插件的原理是: ...

  2. html页面转换成图片的三种方法——canvas、dom-to-image、html2canvas

    html页面转换成图片的三种方法--canvas.dom-to-image.html2canvas canvas绘制网络图片报错(跨域) 使用canvas将html页面转成图片 dom-to-imag ...

  3. 使用html2canvas,将页面转换成图片的采坑记录(Web/Taro h5)

    使用html2canvas将页面转换成图片的采坑记录 "html2canvas": "^1.4.1","@tarojs/taro": &qu ...

  4. 使用的是html5的canvas将文字转换成图片

    当前功能的运用场景是:用户需要传文件给他人,在用户选择文件之后需要显示一个文件图标和所选文件的名称. 当前代码部分是摘自网上,但是已经忘记在什么地方获取的,如有侵权联系小弟后自当删除. 注意:必须在h ...

  5. c#,将pdf文件转换成图片文件。

    本文采用Adobe Acrobat9.0的COM组件,将Pdf文件的每一页转换成对应的图片文件. 开发环境:VS2010,.Net Framework4.0,Adobe Acrobat9.0. 工程中 ...

  6. C#技术分享【PDF转换成图片——13种方案】

    1.[O2S.Components.PDFRender4NET.dll],第三方DLL,可以实现PDF转图片,支持32位系统.64位系统 官方试用版的dll左上角会有一排红色水印,下面这个是破解版的没 ...

  7. Android代码(Handler的运用),HttpURLConnection的应用,将url图片地址转换成图片。

     1 布局文件, <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xml ...

  8. xml文件转换成图片_如何把pdf文件转换成图片?

    pdf文件怎么转成JPG图片呢?相信有不少人在迷惑,可能还在想着截图等操作来完成转换,但如果是截图成JPG图片后的效果可能很差,并没有之前pdf文件那么清楚.那这样往往打印出来的效果也不怎么理想,那怎 ...

  9. C#,pdf文件转换成图片文件。

    本文采用Adobe Acrobat9.0的COM组件,将Pdf文件的每一页转换成对应的图片文件. 开发环境:VS2010,.Net Framework4.0,Adobe Acrobat9.0. 工程中 ...

最新文章

  1. 深度学习中的反向卷积
  2. JavaScript:事件冒泡和事件委托
  3. MITOS|线粒体在线注释网站
  4. if,elif,else的关系 input print int的用法
  5. 编写业务层和持久层事务控制代码并配置spring的ioc
  6. matlab获得帮助的途径,在MATLAB 中获得帮助的途径 ()。A、帮助浏览器B、help 命令C、lookfor 命令D、模糊查询...
  7. Apache Nuvem将带来更多的开源云?
  8. 检查可执行文件所需要的共享库
  9. [Leetcode]第[58]题[JAVA][最后一个单词的长度][字符串]
  10. matlab时域转复频域,信号与系统实验(MATLAB版)实验15连续系统的复频域分析.ppt...
  11. tiny core linux ftp,tinycore 的基本搭建,开机时间只需要1-3秒
  12. android intent 跳转activity,Activity 跳转 都知道用startActivity(Intent)
  13. Java实现密码学工具,集成了对称加密算法DES,AES,IDEA,公开加密算法RSA,ECC,散列算法MD5,SHA1,CRC32,以及RSA,DSA,ECDSA数字签名验证示例。
  14. python制作3d相册代码_python中Matplotlib实现绘制3D图的示例代码
  15. python实现协同过滤算法
  16. 全球与中国高效无气油漆喷涂机市场深度研究分析报告
  17. 1.1 创造性和动机
  18. 更改Typora宽度
  19. python 爬漫画 小白学习过程
  20. 文件上传漏洞---Web渗透学习

热门文章

  1. dreamweaver半角空格_轻松处理Dreamweaver段落缩进
  2. Bootstrap导航栏navbar源码分析
  3. r 字符串转化为数值_【R语言】数据结构Ⅰ—向量,矩阵,数组
  4. HTML5 Canvas标签
  5. 从计算的根源谈及计算机中“码”的设计和一些理解
  6. GoogLeNet系列论文
  7. 华硕fl5700u安装win7
  8. 终于解决了fedora 16下chromium浏览器Shockwave Flash崩溃的问题
  9. XP安装虚拟机+苹果系统
  10. Mybatis-基础详解