jsPDF导出白边问题/外边距不一样问题/缩放问题

1. 问题:在使用 OrgChart 组织架构图中,使用 jsPDF 下载 PDF 文件时,选中区域缩放,导致右边距和下边距变大,显示如图:

2. 原因:

exportPDF: function(canvas, exportFilename){
      var doc = {};
      var docWidth = Math.floor(canvas.width);
      var docHeight = Math.floor(canvas.height);
      if (!window.jsPDF) {
        window.jsPDF = window.jspdf.jsPDF;
      }

      if (docWidth > docHeight) {
        doc = new jsPDF({
          orientation: 'landscape',
          unit: 'px',
          format: [docWidth, docHeight]
        });
      } else {
        doc = new jsPDF({
          orientation: 'portrait',
          unit: 'px',
          format: [docHeight, docWidth]
        });
      }
      // 没有设置宽度导致问题
      doc.addImage(canvas.toDataURL(), 'png', 0, 0);
      doc.save(exportFilename + '.pdf');
    },

3. 解决方案:增加宽度设置

// 设置宽度
var width = doc.internal.pageSize.getWidth();
var height = doc.internal.pageSize.getHeight();
      
doc.addImage(canvas.toDataURL(), 'png', 0, 0, width, height);

全部代码: 

exportPDF: function(canvas, exportFilename){
      var doc = {};
      var docWidth = Math.floor(canvas.width);
      var docHeight = Math.floor(canvas.height);
      if (!window.jsPDF) {
        window.jsPDF = window.jspdf.jsPDF;
      }

      if (docWidth > docHeight) {
        doc = new jsPDF({
          orientation: 'landscape',
          unit: 'px',
          format: [docWidth, docHeight]
        });
      } else {
        doc = new jsPDF({
          orientation: 'portrait',
          unit: 'px',
          format: [docHeight, docWidth]
        });
      }

      // 设置宽度
      var width = doc.internal.pageSize.getWidth();
      var height = doc.internal.pageSize.getHeight();
      
      doc.addImage(canvas.toDataURL(), 'png', 0, 0, width, height);
      doc.save(exportFilename + '.pdf');
    },

4. 修复后

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值