【技术支持】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");
    });
相关推荐
铸人2 分钟前
大数分解的Shor算法-C#
开发语言·算法·c#
yyjtx5 分钟前
DHU上机打卡D31
开发语言·c++·算法
海绵宝龙7 分钟前
前端网页录屏是怎么实现的
前端
rit843249921 分钟前
全变分正则化图像去噪的MATLAB实现
开发语言·matlab
勇往直前plus21 分钟前
python格式化字符串
开发语言·前端·python
恋猫de小郭26 分钟前
Flutter 的真正价值是什么?深度解析再结合鸿蒙,告诉你 Flutter 的真正优势
android·前端·flutter
micro_xx27 分钟前
Matlab 有限元分析三维悬臂梁变形
前端·数据库·matlab
未来之窗软件服务31 分钟前
AI人工智能(二十四)错误示范ASR张量错误C#—东方仙盟练气期
开发语言·人工智能·c#·仙盟创梦ide·东方仙盟
web3.088899931 分钟前
获得某红书笔记评论说明-item_review
服务器·前端·数据库
大黄说说32 分钟前
不是进阶阶梯,而是协作维度:重新理解 Claude Code 中的 Commands、Skills 与 Agents
开发语言