react 使用html2canvas截图并保存,可以忽略div内的元素

安装

yarn add html2canvas

引入

import html2canvas from 'html2canvas';

导出按钮

            <Button
              id='map-down'
              className="map-down"
              onClick={async () => {
                const node = mapRef.current;  // 要导出的元素ref
                if (node) {
                  const canvas = await html2canvas(node, {
                    // 导出时要排除的元素
                    onclone: (document) => {
                      const elementToExclude = document.getElementById('map-down');
                      if (elementToExclude) {
                        elementToExclude.style.display = 'none'; // 隐藏元素
                      }
                    },
                  });
                  const img = canvas.toDataURL('image/png');
                  // 下载
                  var a = document.createElement('a');
                  var event = new MouseEvent('click');
                  a.download = `${barcode}`;
                  a.href = img;
                  a.dispatchEvent(event);
                }
              }}
            >
              <DownloadOutlined />
            </Button>

要导出的内容

const mapRef = useRef(null); // 需要定义ref
<div className="content-box" ref={mapRef}>
</div>
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容