Skip to main content

html2canvas

基本使用

import html2canvas from "html2canvas";

// html2canvas(element, options);
html2canvas(document.body).then(function (canvas) {
document.body.appendChild(canvas);
});

options 对象里可以配置 ignoreElements 可以隐藏某些元素不被 canvas 绘制,更多参数参考 https://html2canvas.hertzen.com/configuration/

功能实现

  • 遍历 DOM 节点,按照样式和合适的层级将其绘制在 canvas 上
  • 如果遇到 canvas 节点,会将其内容作为图像绘制到 canvas 上
  • 通过 canvas.toDataURL() 生成图像

canvas 跨域

options 配置的 allowTaint 可以配置为 true,允许加载跨域图片

实现原理是读取到 img 节点时,将其转换成 base64 数据,再通过 drawImage 绘制到 canvas 上