保存div为图片HTML2canvas截图为图片简洁的代码

toImage() {
      // 手动创建一个 canvas 标签
      const canvas = document.createElement("canvas");
      // 获取父标签,意思是这个标签内的 DOM 元素生成图片
      // imageTofile是给截图范围内的父级元素自定义的ref名称
      let canvasBox = this.$refs.imageTofile;
      // 获取父级的宽高
      const width = parseInt(window.getComputedStyle(canvasBox).width);
      const height = parseInt(window.getComputedStyle(canvasBox).height);
      // 宽高 * 2 并放大 2 倍 是为了防止图片模糊
      canvas.width = width * 2;
      canvas.height = height * 2;
      canvas.style.width = width + "px";
      canvas.style.height = height + "px";
      const context = canvas.getContext("2d");
      context.scale(2, 2);
      const options = {
        backgroundColor: null,
        canvas: canvas,
        useCORS: true,
      };
      html2canvas(canvasBox, options).then((canvas) => {
        // toDataURL 图片格式转成 base64
        let dataURL = canvas.toDataURL("image/png");
        console.log(dataURL);
        this.downloadImage(dataURL);
      });
    },
    //下载图片
    downloadImage(url) {
      // 如果是在网页中可以直接创建一个 a 标签直接下载
      let a = document.createElement("a");
      a.href = url;
      a.download = "图片";
      a.click();
    },

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
好的,这是一个简单的示例代码,用于将HTML页面分页生成图片,并将所有图片合并为一个PDF文件: ```html <!DOCTYPE html> <html> <head> <title>HTML2Canvas and jsPDF Demo</title> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/html2canvas/0.4.1/html2canvas.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.5.3/jspdf.debug.js"></script> </head> <body> <div id="content"> <h1>Page 1</h1> <p>This is the content of page 1.</p> </div> <div id="content"> <h1>Page 2</h1> <p>This is the content of page 2.</p> </div> <div id="content"> <h1>Page 3</h1> <p>This is the content of page 3.</p> </div> <script> $(document).ready(function() { var totalPDFPages = 0; var pdf = new jsPDF('p', 'pt', 'a4'); // Loop through all the HTML elements with id 'content' $('div#content').each(function(index) { var canvas = document.createElement('canvas'); var divHeight = $(this).height(); var divWidth = $(this).width(); var ratio = divHeight / divWidth; var imgWidth = pdf.internal.pageSize.getWidth() - 20; var imgHeight = imgWidth * ratio; canvas.height = imgHeight; canvas.width = imgWidth; var contentDataURL = canvas.toDataURL('image/png'); html2canvas(this, { scale: 1, canvas: canvas }).then(function(canvas) { var imgData = canvas.toDataURL("image/png", 1.0); pdf.addImage(imgData, 'PNG', 10, 10, imgWidth, imgHeight); totalPDFPages++; if (totalPDFPages === $('div#content').length) { pdf.save('myPDF.pdf'); } else { pdf.addPage(); } }); }); }); </script> </body> </html> ``` 这段代码使用了jQuery、html2canvas和jsPDF库,使用时需要先引入这些库。代码中,我们使用了html2canvas将HTML元素换为canvas,并将canvas换为base64格式的图片。然后,我们使用jsPDF将这些图片添加到PDF文件中,并将所有页面合并为一个PDF文件。注意,我们使用了一个计数器来跟踪生成的页面数,以便在所有页面都生成后才保存PDF文件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值