记录:页面下载为png和pdf

记录贴,要下载为png和pdf的页面比较简单,只有文字,所以没遇到什么坑

下载为png

使用html2canvas
官网:https://html2canvas.hertzen.com/

npm i html2canvas

 import html2canvas from 'html2canvas';
 
 async function saveAsImage() {
    try {
      const bodyEl: HTMLElement = document.querySelector(
        '.body',
      ) as HTMLElement;

      const canvas = await html2canvas(bodyEl, {
        useCORS: true,
        scale: 2, // 提高渲染质量
      });
      fetch(canvas.toDataURL('image/png'))
        .then((response) => response.blob())
        .then((blob) => {
          // 创建一个 Blob URL
          const url = window.URL.createObjectURL(new Blob([blob]));
          // 创建一个隐藏的可下载链接
          const a = document.createElement('a');
          a.href = url;
          a.download = 'test.png';
          // 触发点击
          a.click();
          // 清理 URL
          setTimeout(() => {
            window.URL.revokeObjectURL(url);
            a.remove();
          }, 100); // 等待下载完成
        })
        .catch(console.error);
    } catch (error) {
      console.error('Error capturing the page:', error);
    }
  }

下载为pdf

使用html2pdf
文档:https://github.com/eKoopmans/html2pdf.js#options

npm install --save html2pdf.js

 import html2pdf from 'html2pdf.js';
 function savePdf() {
    const bodyEl: HTMLElement = document.querySelector(
      '.body',
    ) as HTMLElement;
    html2pdf()
      .set({
        pagebreak: { mode: ['avoid-all'] },
        html2canvas: {
          scale: 2,
          useCORS: true,
        },
      })
      .from(bodyEl)
      .save('test.pdf')
  }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

独断万古的伊莉雅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值