react项目用html2canvas导出图片,加粗等样式失效

发布于 2022-09-11 20:38:33 字数 1452 浏览 11 评论 0

问题描述

react项目用html2canvas导出图片,加粗等样式失效

问题出现的环境背景及自己尝试过哪些方法

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)
exportPDF = () => {

let { shop } = this.props;
let element = document.querySelector('.pdf');
let { height } = getComputedStyle(element, false);
let { width } = getComputedStyle(element, false);
let canvas = document.createElement('canvas');
canvas.width = parseInt(width, 10);
canvas.height = parseInt(height, 10);
let context = canvas.getContext('2d');
context.scale(2, 2);
html2canvas(element, {
  useCORS: true,
}).then(canvas => {
  let pdf = new JsPDF('', 'pt', 'a4');
  context.drawImage(canvas, 0, 0, canvas.width, canvas.height, 0, 0, canvas.width, canvas.height);
  let pdfWidth = canvas.width;
  let pdfHeight = canvas.height;
  let pageHeight = pdfWidth / 592.28 * 841.89;
  let leftHeight = pdfHeight;
  let position = 0;
  let imgWidth = 595.28;
  let imgHeight = 592.28 / pdfWidth * pdfHeight;
  let pageData = canvas.toDataURL('image/jpeg', 1.0);
  if (leftHeight < pageHeight) {
    pdf.addImage(pageData, 'JPEG', 0, 0, imgWidth, imgHeight);
  } else {
    while (leftHeight > 0) {
      pdf.addImage(pageData, 'JPEG', 0, position, imgWidth, imgHeight);
      leftHeight -= pageHeight;
      position -= 841.89;
      if (leftHeight > 0) {
        pdf.addPage();
      }
    }
  }
  pdf.save(`${shop.shopName}.pdf`);
});

}

你期待的结果是什么?实际看到的错误信息又是什么?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文