首页 > 其他分享 >vue项目中使用html2canvas插件

vue项目中使用html2canvas插件

时间:2024-03-21 11:11:49浏览次数:34  
标签:插件 vue canvas html2canvas let blob

一、生成海报图
vue项目中使用html2canvas插件,实现将编写的html代码转成可以保存的图片,只需要以下四步。

1、在vue项目中安装插件

npm i html2canvas

 

2、在需要使用到的页面引入html2canvas插件

import html2canvas from “html2canvas”;

 

3、按照设计图编写html代码

<div
          v-loading="loading"
          id="haibao_box"
          :class="loading ? 'noscroll' : ''"
          class="haibao_box noScrollBar"
        >
          <div id="poster">
            <img
              id="bgc"
              src="https://imgbdb4.bendibao.com/xcxbdb/20239/21/2023921132708_70332.png"
            />
            <div class="main">
              <div class="job_name">{{ jobInfo.name }}</div>
              <div class="detail">{{ jobInfo.content }}</div>
              <div class="footer">
                <img
                  src="https://imgbdb4.bendibao.com/xcxbdb/20239/21/2023921140905_78679.png"
                  id="code"
                />
                <img
                  id="code_bg"
                  src="https://imgbdb4.bendibao.com/xcxbdb/20239/21/2023921132740_17597.png"
                />
              </div>
            </div>
          </div>
        </div>

4、生成海报图

 

async getHaibao() {
   let htmlDom = document.getElementById("poster");
   let that = this;
   html2canvas(htmlDom, {
      allowTaint: true,
      useCORS: true,
      scrollY: 0,
      scrollX: 0,
    }).then(function (canvas) {
         let haibaoBox = document.getElementById("haibao_box");
         canvas.setAttribute("id", "canvas"); //给我们的海报画布一个id值,后面一键赋值用到
         haibaoBox.appendChild(canvas); //新增到页面相应的位置
          htmlDom.style.display = "none"; //将我们的html代码隐藏
         that.loading = false;
    });
}

 

二、一键复制到剪切板
1、需要安装b64-to-blob

npm i b64-to-blob --save

2、具体使用

//页面中引入b64toBlob
import b64toBlob from “b64-to-blob”;

 

给一个按钮绑定这个点击事件即可

copyCanvasImage() {
    // 获取canvas元素
    let canvas = document.getElementById("canvas");
    let imageData = canvas.toDataURL();
    let str = imageData.replace(/data:image\/png;base64,/, "");
    let file = b64toBlob(str, "image/png");
    let clipboardItemInput = new window.ClipboardItem({
        "image/png": file,
     });
    window.navigator.clipboard.write([clipboardItemInput]);
},

 

可能遇到的问题参考:

1.js 把图片url转化成base64

2.html2canvas (踩坑) 网络图片显示不出来&生成图片只有一半或者空白&文字显示不出来问题处理




  

 

标签:插件,vue,canvas,html2canvas,let,blob
From: https://www.cnblogs.com/haoran5544/p/18086915

相关文章

  • Vue.js+SpringBoot开发服装店库存管理系统
    目录一、摘要1.1项目介绍1.2项目录屏二、功能模块2.1数据中心模块2.2角色管理模块2.3服装档案模块2.4服装入库模块2.5服装出库模块三、系统设计3.1用例设计3.2数据库设计3.2.1角色表3.2.2服装档案表3.2.3服装入库表3.2.4服装出库表四、系统展示五、核......
  • Vue.js+SpringBoot开发高校宿舍调配管理系统
    目录一、摘要1.1项目介绍1.2项目录屏二、功能需求2.1学生端2.2宿管2.3老师端三、系统展示四、核心代码4.1查询单条个人习惯4.2查询我的室友4.3查询宿舍4.4查询指定性别全部宿舍4.5初次分配宿舍五、免责说明一、摘要1.1项目介绍基于JAVA+Vue+Spring......
  • 基于java+springboot+vue实现的电影院选票系统(文末源码+Lw+ppt)23-467
    摘要时代在飞速进步,每个行业都在努力发展现在先进技术,通过这些先进的技术来提高自己的水平和优势,电影院选票系统当然不能排除在外。电影院选票系统是在实际应用和软件工程的开发原理之上,运用java语言,前台Vue框架以及后台SpringBoot框架进行开发。首先要进行需求分析,分析出电......
  • 基于java+springboot+vue实现的智慧养老院管理系统(文末源码+Lw+ppt)23-490
    摘 要智慧养老院管理系统采用B/S架构,数据库是MySQL。网站的搭建与开发采用了先进的java进行编写,使用了springboot框架。该系统从三个对象:由管理员和家属、护工来对系统进行设计构建。主要功能包括:个人信息修改,对家属信息、护工信息、老人入住、外出报备、退房登记、每月餐饮......
  • 基于java+springboot+vue实现的学生管理系统(文末源码+Lw+ppt)23-486
    摘  要学生管理系统的目的是让使用者可以更方便的将人、设备和场景更立体的连接在一起。能让用户以更科幻的方式使用产品,体验高科技时代带给人们的方便,同时也能让用户体会到与以往常规产品不同的体验风格。与安卓,iOS相比较起来,学生管理系统在流畅性,续航能力,等方方面面都有......
  • 基于java+SpringBoot+Vuel的制造装备物联及生产管理ERP系统设计与实现
    基于java+SpringBoot+Vuel的制造装备物联及生产管理ERP系统设计与实现开发语言:Java数据库:MySQL技术:SpringBoot+MyBatis工具:IDEA/Ecilpse、Navicat、Maven系统展示前台展示系统简介制造装备物联及生产管理ERP系统在对开发工具的选择上也很慎重,为了便于开发实现,选......
  • 尚硅谷Vue3入门到实战,最新版vue3+TypeScript前端开发教程
    1.创建Vue3工程npmcreatevue@latest或者npminitvue@latest输入项目名和需要的工具后进入项目如果项目报错使用命令安装Node.js的项目依赖包npmi启动vue项目,查看项目是否创建完成npmrundev直接删掉src然后创建src文件夹,在该文件夹中创建main.ts和App.vue文件......
  • 基于Java的桃花峪滑雪场租赁系统(Vue.js+SpringBoot)
    目录一、摘要1.1项目介绍1.2项目录屏二、功能模块2.1游客服务2.2雪场管理三、数据库设计3.1教练表3.2教练聘请表3.3押金规则表3.4器材表3.5滑雪场表3.7售票表3.8器材损坏表四、系统展示五、核心代码5.1查询教练5.2教练聘请5.3查询滑雪场5.4滑雪场预......
  • chrome拓展-chrome插件-强制copy
    方法:浏览器扩展最简单也是最省事的方法,直接安装解除复制限制的扩展完事儿。下面推荐两款扩展:SimpleAllowCopy:Chrome&Edge(Chromium系的应该都可以)AbsoluteEnableRightClick&Copy:Chrome&Edge&Firefox使用方法也很简单,在有复制限制或者右键限制的网站上,点击扩展......
  • 免费分享一套SpringBoot+Vue大学新生报到管理系统,帅呆了~~
    大家好,我是java1234_小锋老师,看到一个不错的SpringBoot+Vue大学新生报到管理系统,分享下哈。项目视频演示【免费】SpringBoot+Vue大学新生报到管理系统Java毕业设计_哔哩哔哩_bilibili【免费】SpringBoot+Vue大学新生报到管理系统Java毕业设计项目来自互联网,免费开源分享,严......