• 页面分页打印,echarts图解决办法;生成PDF


    1:echarts图片前端打印不是很完美,对于VUE2.0版本不是很有好

    2:360浏览器不支持vue的最新版本的插件vue3-print-nb

    3:vue-print-nb 可以打印带有echarts 一页内容,并且还存在bug,第一次点击打印没有,第二次打印才会出现,并且不会分页,显然是不可以的

    解决方案:将echarts弄成base64图片,注意缓存时间,时间太短图片生成不出来;并且打印只能是页面的显示内容,隐藏内容不会被打印出来,所以最好再写一个页面

    <Row>
                  <Col span="2">
                    &nbsp;
                  </Col>
                  <Col span="20">
                    <div class="tableWrap"  style="height: 300px;width: 100%">
                      <div
                          ref="myStacked"
                          id="myStacked"
                          style="height: 300px;width: 100%"
                      ></div>
    
                    </div>
                  </Col>
                </Row>
    
    1:注意div标签要给高度,不然echarts显示不出来
    
      const myStacked = echarts.init(this.$refs.myStacked);
       setTimeout(()=>{
            this.myStackedImg = myStacked.getDataURL({
              type: "jpg",
              pixelRatio: 1, //放大2倍
              backgroundColor: "#fff", // 背景颜色
            });
          },1000)
          
    1:getDataURL 是获取base64的图片方法
    
    <Modal v-model="previewsModel" title="报告pdf" :mask-closable="false"
               width="1200"  footer-hide :styles="{top: '100px'}">
          <riskReportPdf2
                  style="height: 500px;overflow: auto"
                  :myStackedImg="myStackedImg"
                  :myPiepagetwoImg="myPiepagetwoImg"
                  :myPiePage2Img="myPiePage2Img"
                  :myColumnPage4Img="myColumnPage4Img"
                  ......
          />
        </Modal>
    
    1:注入vue-print-nb 和 Vue 
     import Print from 'vue-print-nb';
    import Vue from 'vue';
    Vue.use(Print, {manualPageBreak: true});
    <Card class="box-card" :body-style="{ padding: '20px',minHeight: 'calc(100vh - 100px)'}">
    	// 打印的标签id regAccountConfirmDiv111
         <div id="regAccountConfirmDiv111" ref="regAccountConfirmDiv111" style="padding: 20px">
         // 分页 page-break-before:always;
         <div style="page-break-before:always;">
           <Row>
              <Col span="24" style="text-align: center;">
                 <img :src="myStackedImg" alt="交易数量" style="display: inline-block;border: 1px solid #000000;margin-top: 10px" />
               </Col>
           </Row>
        </div>
      </div>
    </Card>
    
    1:注意 <div style="page-break-before:always;"> 是分页的标识
    
     print() {
         this.$print(this.$refs.regAccountConfirmDiv111);
     },
    .......
    
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68

    在这里插入图片描述

  • 相关阅读:
    LCR 075.数组的相对排序
    ZoomIt最简单方便的屏幕画图工具操作手册
    MYSQL学习之——逻辑语言(判断)
    网络通信——与WEB服务器交换数据(三十)
    Pytorch中张量矩阵乘法函数(mm, bmm, matmul)使用说明,含高维张量实例及运行结果
    Visual Studio: Arm64EC官方支持来了
    十七、完整神经网络模型训练步骤
    App Store 已上架项目打开瞬闪问题
    【PAT甲级】1131 Subway Map
    云原生相关概念
  • 原文地址:https://blog.csdn.net/qihangVIP4/article/details/138117125