前端实现页面内容的截图与下载(html2canvas)

今天是一个发文的好日子😀~

👇👇👇

一个需求,要截取页面中的内容并截图保存,来看一看我是怎么实现的吧:

这里需要使用到插件--html2canvas

1.安装并引入html2canvas

npm install html2canvas
import html2canvasfrom 'html2canvas'

也可以从这里找到相应的文件html2canvas.hertzen.com/dist/html2canvas.js

以便原生js引入

<script type="text/javascript" src=".\html2canvas.js"></script>

2.创建(下载按钮)点击事件:

(1)html2canvas方法来获取canvas对象,其第一个参为对应的节点,第二个是相关配置项。

(2)获取到canvas后用其toDataURL方法转换为url,并提供a链接的href(放链接)与download(文件名)并添加到页面上来进行下载(注意图片格式统一)。

(3)想要自动下载,可先将a链接藏起来,并异步使用dispatchEvent触发其点击事件,最后移除该a链接即可。

以上三步代码示例如下👇

let aimPart = document.querySelector('.app');
  html2canvas(aimPart,{
    scale: 2,
    width: aimPart.offsetWidth,
    height: aimPart.offsetHeight,
    allowTaint: true,    // 允许污染画布
    proxy: '/imgProxy'
  }).then((canvas) => {
    let imgUrl = canvas.toDataURL('image/png', 1);

    let downLoadLink = document.createElement('a');
    downLoadLink.innerText = '下载'
    downLoadLink.download = '铸剑山庄.png';
    downLoadLink.href = imgUrl;
    downLoadLink.className = "downLoadLink"
    downLoadLink.style.display = "none";

      // 下载图片
      aimPart.appendChild(downLoadLink)
      window.setTimeout(() => {
        document.querySelector('.downLoadLink').dispatchEvent(new MouseEvent('click'));
        aimPart.removeChild(document.querySelector('.downLoadLink'))
      },500)

  })

之后便可以下载目标节点(示例中aimPart)的相应截图了~

希望本文会对您有所帮助~ ^_^

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
要使用html2canvas和pdfmake将HTML转为PDF并下载,您可以按照以下步骤操作: 1. 首先,您需要在HTML页面中引入html2canvas和pdfmake的库文件。您可以通过以下方式在HTML文件中添加这两个库: ```html <script src="https://cdnjs.cloudflare.com/ajax/libs/html2canvas/0.4.1/html2canvas.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.66/pdfmake.min.js"></script> ``` 2. 接下来,您需要创建一个按钮或触发器,以便在单击时开始转换并下载PDF。例如: ```html <button onclick="generatePDF()">Download PDF</button> ``` 3. 然后,您需要编写一个JavaScript函数来执行转换和下载操作。该函数将使用html2canvas将HTML元素转换为图像,然后使用pdfmake将这些图像添加到PDF文档中。最后,该函数将使用pdfmake下载PDF文档。以下是一个示例函数: ```javascript function generatePDF() { // 获取要转换为PDF的HTML元素 const element = document.getElementById("html-content"); // 使用html2canvas将HTML元素转换为图像 html2canvas(element).then((canvas) => { // 将图像转换为DataURL const imgData = canvas.toDataURL("image/png"); // 创建一个PDF文档对象 const docDefinition = { content: [ { image: imgData, width: 500, }, ], }; const pdfDocGenerator = pdfMake.createPdf(docDefinition); // 下载PDF文档 pdfDocGenerator.download("document.pdf"); }); } ``` 在这个示例中,我们使用了一个id为“html-content”的HTML元素,并将其转换为PNG图像。然后,我们创建了一个pdfmake文档定义对象,其中包含一个图像元素,该元素使用先前创建的DataURL。最后,我们使用pdfmake的下载方法下载PDF文档。 4. 最后,您需要确保您的HTML元素可以正确转换为图像。这意味着您需要确保该元素在屏幕上可见,并且没有被另一个元素遮盖。 通过这些步骤,您应该能够使用html2canvas和pdfmake将HTML转换为PDF并下载
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值