2021-12-03 react+html2canvas页面转为图片或者pdf

页面点击按钮点击出发dowanload函数

const download = () => {
    const element: HTMLElement = document.getElementById('demo'); // 需要导出的pdf页面
    html2canvas(element, {
      allowTaint: true,
      useCORS: true,
    }).then((canvas) => {
      const dataImg = new Image();
      dataImg.src = canvas.toDataURL('image/png');
      // FileSaver.saveAs(`${dataImg.src}`, `11.jpg`);
      // message.success('下载中...', 1);
      这两句是转化为图片下载下来
      const pdf = new jsPDF('p', 'pt', 'a4');
      const contentWidth = canvas.width;
      const contentHeight = canvas.height;
      const pageHeight = (contentWidth / 592.28) * 841.89;
      let leftHeight = contentHeight;
      let position = 0;
      const imgWidth = 595.28;
      const imhHeight = (592.28 / contentWidth) * contentHeight;
      if (leftHeight < pageHeight) {
        pdf.addImage(dataImg.src, 'JPEG', 0, position, imgWidth, imhHeight);
      } else {
        while (leftHeight > 0) {
          pdf.addImage(dataImg.src, 'JPEG', 0, position, imgWidth, imhHeight);
          leftHeight -= pageHeight;
          position -= 841.89;
          if (leftHeight > 0) {
            pdf.addPage();
          }
        }
      }
      pdf.save('ss.pdf');
    });
  };
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值