美文网首页
vue实现html2canvas截图A4纸大小并适应不同分辨率

vue实现html2canvas截图A4纸大小并适应不同分辨率

作者: 上海_前端_求内推 | 来源:发表于2022-08-16 17:55 被阅读0次

html2canvas截图时如果设置固定宽度或者设置为div的宽度,直接打印时没有问题,但是画布截图的范围会超出a4纸大小,所以这是就需要让画布的宽度根据分辨率动态设置


image.png
 savebutton() {
        this.printstate=true
        this.loading=true
        // console.log(this.form)
        var dataform = {}
        dataform = this.form.head
        // var arr1=[]
        // arr1.push(this.form.arr)
        dataform.jsonStr = JSON.stringify(this.form.arr)
        dataform.UserCode=localStorage.getItem("ms_loginUserCode")
        dataform.UserName=localStorage.getItem("ms_loginUsername")
        setTimeout(() => {
          var canvaswidth=840
          if(document.body.scrollWidth>=1360&&document.body.scrollWidth<1440){
            canvaswidth=canvaswidth*1.5
          }else if(document.body.scrollWidth>=1440&&document.body.scrollWidth<1600){
            canvaswidth=canvaswidth*1.4
          }else if(document.body.scrollWidth>=1600&&document.body.scrollWidth<1680){
            canvaswidth=canvaswidth*1.2
          }else if(document.body.scrollWidth>=1680&&document.body.scrollWidth<1920){
            canvaswidth=canvaswidth*1.1
          }else if(document.body.scrollWidth>=1920){
            canvaswidth=canvaswidth*1
          }
        html2canvas(this.$refs.printContent, {
          allowTaint: false,
          useCORS: true,
          height: this.$refs.printContent.outerHeight,
          width: canvaswidth,
          windowWidth: document.body.scrollWidth,
          windowHeight: document.body.scrollHeight,

        }).then((canvas) => {
          var urlimg = canvas.toDataURL('image/jpeg')
          // 
          var st = urlimg.indexOf(',');
          var stnew = parseInt(st) + 1;
          urlimg = urlimg.substring(stnew);
          // 
          var urllist = {}
          urllist.BaseStr = urlimg
          dataform.imgBase = []
          dataform.imgBase.push(urllist)
          dataform.imgBase = JSON.stringify(dataform.imgBase);
          this.$axios({
            method: "post",
            url: this.$baseService.savecontent,
            data: dataform,
          })
            .then((res) => {
              this.printstate=false
              this.loading = false;
              this.dialog = false;
              this.$message({
                message: "操作成功",
                type: "success",
              });
              this.$emit('childEvent');
              this.title = "编辑";
            })
            .catch((res) => {
              this.loading = false;
              this.$message.error("网络错误,请联系管理员");
            });
        })
        
 }, 1000);

      },

相关文章

  • vue实现html2canvas截图A4纸大小并适应不同分辨率

    html2canvas截图时如果设置固定宽度或者设置为div的宽度,直接打印时没有问题,但是画布截图的范围会超出a...

  • vue页面生成pdf且避免分页截断处理

    要求按A4纸大小生成pdf,支持分页且内容不被截断 使用html2canvas和jspdf插件实现 通过html2...

  • 前端自适应问题

    自适应问题 PC端随屏幕分辨率与窗口大小自适应 参考文献 vue项目PC端随屏幕分辨率与窗口大小自适应[https...

  • Blob文件保存

    html2Canvas截图并保存 后台返回excel数据流前端实现保存

  • 自适应和响应式的区别

    自适应:同一张网页适应不同设备分辨率及屏幕大小 响应式:根据设备大小显示不同的网页

  • 在不同分辨率下实现页面缩放实现页面适配

    在vue 项目的app.vue文件中,增加如下代码,实现在小分辨率显示器上整体缩小页面,实现布局自适应。 小分辨率...

  • PC/移动端布局方式

    1.静态布局: 布局特点:宽高固定 2.自适应布局: 布局特点:不同分辨率下,页面元素位置变化,大小不变 实现方法...

  • vue 实现类朋友圈浏览界面

    vue 实现类朋友圈浏览界面 移动端需要适应不同屏幕大小。1.固定样式,width和height都固定,不管屏幕多...

  • umi开启hd后配置 px2rem

    为实现不同大小分辨率效果基本一样。 开启高清hd即使用rem单位,会自动把项目中的所有px单位转换为rem单位,并...

  • temp

    vue中,根据屏幕不同设置子组件的高度,ref、$refs、props vue组件页面高度根据屏幕大小自适应 vu...

网友评论

      本文标题:vue实现html2canvas截图A4纸大小并适应不同分辨率

      本文链接:https://www.haomeiwen.com/subject/dyxsgrtx.html