【技术支持】canvas转换为图片或PDF保存电脑

注意:有些网站可能由于canvas跨域污染问题,无法使用toBlob,所以无法转换

|---|
| |

开发者工具中,选中需要转换的canvas元素(使其可以使用$0语法)

控制台输入如下代码

javascript 复制代码
 $0.toBlob(function (blob) {
    var link = document.createElement("a");
    link.href = URL.createObjectURL(blob);
    link.download = "image.png";
    link.click();
  }, "image/png");

优化,转换为pdf

javascript 复制代码
fetch("https://cdnjs.cloudflare.com/ajax/libs/jspdf/2.5.1/jspdf.umd.min.js")
    .then((response) => response.text())
    .then((scriptText) => {
      eval(scriptText);//执行脚本
      // 现在可以使用 jsPDF 了
      const pageList = document.querySelectorAll("canvas");

      const { jsPDF } = window.jspdf;

      async function convertCanvasToPDF(pageList, pdfFileName) {
        const pdf = new jsPDF();

        for (let i = 0; i < pageList.length; i++) {
          const canvas = pageList[i];
          if (canvas) {
            const imgData = canvas.toDataURL("image/png");
            if (i > 0) {
              pdf.addPage(); // 在不是第一页的情况下添加新页面
            }
            pdf.addImage(imgData, "PNG", 0, 0, 210, 290);
          }
        }
        pdf.save(pdfFileName);
      }
      // 使用示例
      convertCanvasToPDF(pageList, "output.pdf");
    });
相关推荐
我要神龙摆尾6 分钟前
约定俗成的力量--java中泛型的意义和用法
java·开发语言
漂洋过海的鱼儿11 分钟前
Qt-界面子类(1)
开发语言·qt
C++ 老炮儿的技术栈13 分钟前
不调用C++/C的字符串库函数,编写函数strcmp
c语言·开发语言·c++·人工智能·windows·git·visual studio
幸福的达哥16 分钟前
Python多线程、多进程、协程、锁、同步、异步的详解和应用
开发语言·python
毕设源码-朱学姐17 分钟前
【开题答辩全过程】以 基于HTML5的购物网站的设计与实现为例,包含答辩的问题和答案
前端·html·html5
Hgfdsaqwr21 分钟前
内存泄漏检测与防范
开发语言·c++·算法
梦65028 分钟前
CSS 元素垂直水平居中的 8 种方法
前端·css
熬夜敲代码的小N29 分钟前
Python基础入门:环境配置全指南+核心语法解析
开发语言·python
嫂子开门我是_我哥30 分钟前
第十八节:项目实战2:简易通讯录(面向对象+文件持久化实现)
开发语言·python
We་ct35 分钟前
LeetCode 68. 文本左右对齐:贪心算法的两种实现与深度解析
前端·算法·leetcode·typescript