vue3 使用html2canvas导出div指定区域内的图片

  1. 安装依赖
npm install html2canvas @1.0.0 

注意:我项目中安装的html2canvas版本是1.0.0,可根据需要安装,如需安装最新版本,使用
npm install html2canvas -s
2. 引入依赖

import html2canvas from "html2canvas";
  1. 示例
  <div class="assets-left">
    <div id="exportAll">
     	// 此处是导出的内容
    </div>
  </div>

  <div @click="exportAction">报表导出</div>
// 导出 -> 这个是按钮的导出按钮的触发事件
const exportAction = () =>{
   
   download();
}
// 下载
const download = () => {
   
  let targetDom = document.getElementById("exportAll"); //原本需要截图的div
  console.log("🚀 ~ file: index.vue:33 ~ download ~ targetDom:", targetDom.clientWidth)
  let clonedNode = targetDom.cloneNode(true); //复制一个
  clonedNode.setAttribute(
    "style",
    `width: ${
     targetDom.clientHeight};height: ${
     targetDom.clientWidth};`
  );
  document.body.appendChild(clonedNode); //放到body后面
  // 转换成canvas
  html2canvas(targetDom, {
   
    allowTaint: true,
    taintTest: false,
  }).then(function (canvas) {
   
    var pageData = canvas.toDataURL("image/png", 1.0);
    saveFile(
      pageData.replace("image/png", "image/octet-stream"),
      new Date().getTime() + ".png"
    );
    document.body.removeChild(clonedNode);
  });
};
// 保存路径下载
function saveFile(data, filename) {
   
  var save_link = document.createElementNS("http://www.w3.org/1999/xhtml", "a");
  save_link.href = data;
  save_link.download = filename;
  document.body.appendChild(save_link);
  save_link.click();
  save_link.remove();
}

以上三个步骤就可以实现div指定区域内的图片,下一章具体讲解当内容区域很长,怎么导出滑块区域内的完整内容

相关推荐

  1. vue3 使用html2canvas导出div指定区域图片

    2023-12-13 06:08:03       62 阅读
  2. html2canvas+jsPDF导出超长网页PDF

    2023-12-13 06:08:03       59 阅读
  3. 前端页面使用html2canvas生成图片

    2023-12-13 06:08:03       52 阅读
  4. (简单)html图片-html2canvas

    2023-12-13 06:08:03       28 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-13 06:08:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-13 06:08:03       106 阅读
  3. 在Django里面运行非项目文件

    2023-12-13 06:08:03       87 阅读
  4. Python语言-面向对象

    2023-12-13 06:08:03       96 阅读

热门阅读

  1. RabbitMQ时空之旅:rabbitmq_message_timestamp的奇妙世界

    2023-12-13 06:08:03       57 阅读
  2. lua基本语法使用

    2023-12-13 06:08:03       58 阅读
  3. Log4j.xml配置说明

    2023-12-13 06:08:03       55 阅读
  4. harmonyOS HTTP数据请求能用类

    2023-12-13 06:08:03       47 阅读
  5. Node.js中的EventEmitter类介绍

    2023-12-13 06:08:03       68 阅读
  6. Ansible批量安装Zabbix-agnet客户端

    2023-12-13 06:08:03       54 阅读
  7. ARM(中断实验) 2023.12.12

    2023-12-13 06:08:03       57 阅读
  8. 对virsh dumpxml 文件的解释

    2023-12-13 06:08:03       60 阅读
  9. 使用ansible命令部署k8s集群

    2023-12-13 06:08:03       56 阅读
  10. FFmpeg之HWContextType

    2023-12-13 06:08:03       62 阅读
  11. ffmpeg编解码——时间基(time base)概念

    2023-12-13 06:08:03       57 阅读