首先,在vue中引入html2canvas,执行命令

npm install --save html2canvas

然后在需要生成图片的页面中引入

import html2canvas from 'html2canvas';
 
开始做的是将生成图片前的代码页面展示出来,但是后面因需求改变,要不展示生成的代码,直接展示生成后的图片
虽说是不展示,但是还是要有,不能隐藏(display:none;或者opacity:0),不然绘制出来的就是一片空白区域,我们可以用下面的方法

1.将需要绘制的div fixed定位,注意要定位在 top:0, left:0,保证内容区能在可是区域内容,

2.然后利用z-index来隐藏,这样需要上层有一个遮罩层,需要带背景的层来遮罩住下面的内容

<div class="xibao_wrapper">
<div class="img_container" ref="imgContainer">
<div class="img_content">
<p id="title_text">
热烈祝贺{{formData.countyareaText}}{{formData.branchpostofficeText}}
</p>
<p id="subtitle_text" class="fontFamily">
获得
<span>晒单</span>
</p>
<p class="img_content_text fontFamily">
<label>{{date}}</label>
<label>{{orderNum}}</label>
</p>
<p class="img_content_text fontFamily">
<label>营销人</label>
<label>
<span v-for="saler in salers" :key="saler.name">{{saler.name}}</span>
</label>
</p>
<p class="img_content_text fontFamily">
<label>套餐</label>
<label>{{formData.packageidText}}</label>
</p>
</div>
</div>
</div>

css样式如下:

.xibao_wrapper {
width: 100%;
height: 100%;
position: fixed;
left: 0;
top: 0;
z-index: -1;
}

点击按钮,执行转换成图片的代码

html2canvas(this.$refs.imgContainer, {
// 转换为图片
useCORS: true // 解决资源跨域问题
}).then(canvas = > {
console.log(canvas, 'canvas');
let dataURL = canvas.toDataURL('image/png');
this.showImg = true;
this.imgUrl = dataURL;
});

在vue中使用html2canvas生成图片的更多相关文章

  1. vue中使用html2canvas及解决html2canvas截屏图片模糊问题

    最近在项目中用到了html2canvas插件,遇到的一些坑写下来,与大家共勉. html2canvas  官方网站http://html2canvas.hertzen.com/index.html 这 ...

  2. html2canvas在Vue项目踩坑-生成图片偏移不完整

    背景 最近做一个Vue项目需求是用户长按保存图片,页面的数据是根据不同id动态生成的,页面渲染完生成内容图片让用户长按保存的时候,把整个页面都保存起来. 在项目遇到的坑是图片能生成,可是生成的图片总是 ...

  3. JavaScript读取剪贴板中的表格生成图片

    原文 JavaScript读取剪贴板中的表格生成图片 演示地址 你可以访问下面的地址体验每个demo https://fairyever.github.io/excel-to-image-demo/ ...

  4. vue中如何不通过路由直接获取url中的参数

    前言:为什么要不通过路由直接获取url中的参数? vue中使用路由的方式设置url参数,但是这种方式必须要在路径中附带参数,而且这个参数是需要在vue的路由中提前设置好的. 相对来说,在某些情况下直接 ...

  5. vue中的重要特性

    一.vue中的自定义组件 html的代码: <!DOCTYPE html> <html lang="en"> <head> <meta c ...

  6. Vue中comoputed中的数据绑定

    Vue中的数据实现响应式绑定是在初始化的时候利用definePrototype的定义set和get过滤器,在进行组件模板编译时实现water的监听搜集依赖项,当数据发生变化时在set中通过调用dep. ...

  7. vue中使用stompjs实现mqtt消息推送通知

    最近在研究vue+webAPI进行前后端分离,在一些如前端定时循环请求后台接口判断状态等应用场景用使用mqtt进行主动的消息推送能够很大程度的减小服务端接口的压力,提高系统的效率,而且可以利用mqtt ...

  8. Vue中应用CORS实现AJAX跨域,及它在 form data 和 request payload 的小坑处理

    基本概念部分(一):理解CORS 说道Vue的跨域AJAX,我想先梳理一遍CORS跨域,"跨域资源共享"(Cross-origin resource sharing),它是一个W3 ...

  9. vue中watched属性

    watched属性,vue中的观察属性,可用来监听一个值的变化 默认有两个参数,新值,旧值 data (){ return { currentCity: "深圳" } } watc ...

  10. 七、vue中v-for有时候对页面不会重新渲染,数组变化后如何到渲染页面

      v-for不能进行双向数据绑定,页面渲染完成后,再次更改v-for遍历的数据,js里面打印的数据看到数据值已经更改,但是页面的数据就是没有渲染,这是为什么呢? vue中v-for和angularj ...

随机推荐

  1. 【YashanDB知识库】YAS-00103 no free block in dictionary cache

    [问题分类]功能使用 [关键字]YAS-00103,no free block in dictionary cache [问题描述]执行union all 太多子查询导致报错,例子如下: [问题原因分 ...

  2. Angular 18+ 高级教程 – Memory leak, unsubscribe, onDestroy

    何谓 Memory Leak? Angular 是 SPA (Single-page application) 框架,用来开发 SPA. SPA 最大的特点就是它不刷新页面,不刷新就容易造成 memo ...

  3. QT6新旧版本功能模块对比:QT6做了哪些优化重组?QT6新增加了哪些功能模块?QT6做了哪些改进、提升和优化?

    简介 本文介绍了QT6新旧版本都有的功能模块.QT6优化掉了或转移了的功能模块.QT6新增加的功能模块,以及QT6做了哪些改进.提升和优化. 文章目录 QT6新旧版本都有的功能模块 QT6优化掉了或转 ...

  4. Vue3——Vue Router

    安装 vue-router 依赖包 npm install vue-router@4 创建 router 文件夹,然后在里面创建一个 index.ts 文件,用于定义你的路由配置 // index.t ...

  5. YashanDB发布会圆满收官,V23.1三大新品引领国产数据库技术与应用突破!

    11月8日,YashanDB 2023年度产品发布会在线上成功召开.本次产品发布会以"惟实·励新"为主题,宣布崖山数据库系统YashanDB 内核能力.产品形态.生态创新全面升级, ...

  6. html5新标签 画布 canvas 替代了 flash

    绘制矩形边框,和填充不同的是绘制使用的是strokeRect, 和strokeStyle实现的 绘制路径 绘制路径的作用是为了设置一个不规则的多边形状态 路径都是闭合的,使用路径进行绘制的时候需要既定 ...

  7. threejs 浏览器窗口resize变化 自适应 html 全屏

    全屏:画布全屏和body页面全屏: // 导入 threejs import * as THREE from "three"; import { OrbitControls } f ...

  8. CRLF the next time Git touches it warning: in the working copy of '', LF will be replaced by CRLF the next time Git touches it warning: in the working copy of

    git config --global core.autocrlf true

  9. nginx原理剖析

    当我们启动nginx服务之后,可以使用如下命令查看nginx进程 显然易见,nginx大致分为master以及worker两部分: master-workers 机制 首先./nginx -s rel ...

  10. error loading sources list: ('The read operation timed out',)解决办法!!

    一.灵魂四问 1.为什么叫rosdepc? rosdepc,c指的是China中国,主要用于和rosdep区分. 2.rosdepc和rosdep功能一致吗? rosdep官方最新版源码直接修改的,小 ...