【技术支持】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");
    });
相关推荐
神の愛5 小时前
左连接查询数据 left join
java·服务器·前端
t***5445 小时前
如何配置Orwell Dev-C++使用Clang
开发语言·c++
CoderCodingNo5 小时前
【信奥业余科普】C++ 的奇妙之旅 | 13:为什么 0.1+0.2≠0.3?——解密“爆int”溢出与浮点数精度的底层原理
开发语言·c++
小码哥_常6 小时前
解锁Android嵌入式照片选择器,让你的App体验丝滑起飞
前端
kongba0076 小时前
项目打包 Python Flask 项目发布与打包专家 提示词V1.0
开发语言·python·flask
froginwe117 小时前
C 语言测验
开发语言
今夕资源网7 小时前
powershell工具包 安装升级脚本并设置UTF-8 环境快捷方式创建 将powershell的编码默认改为UTF-8
开发语言·utf-8·powershell·utf-8编码·powershell7·powershell5·设置utf-8编码
郑寿昌7 小时前
IIoT本体迁移的领域扩展机制
服务器·前端·microsoft
机器视觉知识推荐、就业指导7 小时前
Qt:真正的门槛不是入门,而是维护
开发语言·qt
深海鱼在掘金7 小时前
Next.js从入门到实战保姆级教程(第十一章):错误处理与加载状态
前端·typescript·next.js