html2canvas使用文档

安装

npm install html2canvas
or
yarn add html2canvas

引入

import html2canvas from 'html2canvas'

使用

<div ref="canvasDom">
  <div ref="businessCard">这是需要生成图片的内容</div>
  <h4>Hello world!</h4>
</div>

const canvasDom = this.$refs.canvasDom
this.$toast.loading('生成中...')
html2canvas(canvasDom, {
          dpi: 300, // 解决生产图片模糊
          useCORS: true,
          allowTaint: false,
          logging: false,
          scale: 2,
          windowHeight: this.$refs.businessCard.$el.offsetHeight + 40
        })
          .then((canvas) => {
            this.canvasImg = canvas.toDataURL('image/png')
            this.$toast.clear()
            this.$refs.businessCardShare.open(this.canvasImg)
          })
          .catch(() => {
            this.$toast.clear()
          })
      })

其中windowHeight可以控制生成canvas的高度。默认是Window.innerHeight

配置项

名称						默认值						描述
allowTaint					false						是否允许跨源图像污染画布
backgroundColor				#ffffff						画布背景色(如果在DOM中未指定),为透明设置null
canvas						null						用作绘图基础的现有画布元素
foreignObjectRendering		false						如果浏览器支持ForeignObject渲染,是否使用它
imageTimeout				15000						加载图像超时(毫秒),设置为0可禁用超时
logging						true						为调试目的启用日志记录
proxy						null						用于加载跨源图像的代理的Url。如果留空,则不会加载跨原点图像。
removeContainer				true						是否清除html2canvas临时创建的克隆DOM元素
scale						window.devicePixelRatio		用于渲染的比例。默认为浏览器设备像素比率。
useCORS						false						是否尝试使用CORS从服务器加载图像
width						Element width				画布的宽度
height						Element height				画布的高度
x							Element x-offset			裁剪画布x坐标
y							Element y-offset			裁剪画布y坐标
scrollX						Element scrollX				渲染元素时要使用的x滚动位置(例如,如果元素使用位置:fixed)
scrollY						Element scrollY				渲染元素时要使用的y轴滚动位置(例如,如果元素使用位置:fixed)
windowWidth					Window.innerWidth			渲染Element时使用的窗口宽度,这可能会影响Media查询等内容
windowHeight				Window.innerHeight			渲染Element时使用的窗口高度,这可能会影响Media查询等内容

如何忽略某部分内容

可以设置data-html2canvas-ignore="true"忽略某些元素

<div class="btns" data-html2canvas-ignore="true">需要忽略的元素</div>
posted @ 2024-01-24 20:18  wjs0509  阅读(5395)  评论(0编辑  收藏  举报