html2canvas快速使用

一、概述

        html2canvas是一个HTML渲染器,是一个脚本,它允许你直接在用户浏览器截取页面或部分网页的“屏幕截屏”。底层是基于DOM的,根据页面上可用的信息构建屏幕截图,它没有制作实际的屏幕截图,因此生成的图片并不一定是100%一致的。

安装

指令:npm install --save html2canvas

使用时引入

import html2canvas from 'html2canvas'

用法

使用带有一些(可选)选项的 html2canvas 渲染元素,简单的例子html2canvas(element, options)

html2canvas(element, options)
        第一个参数是要截图的dom元素
        第二个参数是个对象
            {
                allowTaint: 
                background: canvas背景颜色,默认为透明
                width: canvas宽度
                height: canvas高度
                letterRendering: 在设置了字间距的时候有用
                logging: 在console.log()中输出信息
                proxy: 代理地址
                taintTest: 是否在渲染前测试图片
                timeout: 图片加载延迟,默认延迟为0,单位毫秒
                useCORS: 允许跨域
            }
    

使用案例

一个动态生成的列表,为他截图

template

<template>
  <el-table :data="sticker" border style="width: 100%" id="stickerList">
    <el-table-column prop="id" label="id" width="180" />
    <el-table-column prop="stickerName" label="名字" width="180" />
    <el-table-column prop="context" label="内容" />
  </el-table>

  <img :src="base64img" alt="">
  
  <el-button type="primary" @click="printPicture()">截图</el-button>

</template>

这里使用了Element-plus标签,在里面创建了一张表,一张图,一个按钮 

script

<script setup>
import { stickerListService } from '@/api/sticker.js'
import { ref } from 'vue';
import { onMounted } from 'vue'
import html2canvas from 'html2canvas'


const base64img = ref()

const printPicture = function(){
  html2canvas(document.querySelector('#stickerList')).then((canvas) => {
    // 转换成base64格式,这个格式可以挂载到img里,也可以下载下来,也可以打压缩包下载下来
    const base64 = canvas.toDataURL().replace(/^data:image\/(png|jpg);base64,/, '')
    base64img.value = `data:image/png;base64,${base64}`
    console.log(base64img.value);
  }).catch((err) => {
      
  });
}


const sticker = ref([
  {
    id: '',
    stickerName: '',
    context: ''
  }
])

const stickerList = async function () {
  let result = await stickerListService()
  sticker.value = result.data
}

onMounted(() => {
  stickerList()
})
</script>

        其中,querySelector()方法是文档对象模型Document引用的一个方法,它可以返回文档中与指定选择器或选择器组匹配的第一个Element对象。如果找不到匹配项,则返回null。

        stickerListService是我自己写的前后端分离接口,你可以直接自己写一组静态的数据。

效果:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
HTML2Canvas是一个JavaScript库,可以将HTML页面中的任何部分转换为画布,并将其导出为图像。它可以用于快速创建屏幕截图,生成交互式报告,或者将网页内容转换为PDF文件。 以下是使用HTML2Canvas的步骤: 1. 在HTML页面中引入HTML2Canvas库: ```html <script src="https://cdnjs.cloudflare.com/ajax/libs/html2canvas/0.5.0-beta4/html2canvas.min.js"></script> ``` 2. 创建一个canvas元素来存储图像: ```html <canvas id="canvas"></canvas> ``` 3. 使用JavaScript选择要转换为图像的HTML元素,并使用HTML2Canvas库将其转换为画布: ```javascript html2canvas(document.querySelector("#elementToCapture")).then(canvas => { document.body.appendChild(canvas) }); ``` 其中,`#elementToCapture`是要转换为画布的HTML元素的选择器。在这个例子中,它将被转换为一个画布,并添加到页面的主体中。 4. 可以通过设置选项来自定义转换过程。例如,可以设置画布的宽度和高度,或者添加水印和截图边框: ```javascript html2canvas(document.querySelector("#elementToCapture"), { width: 800, height: 600, watermark: { text: 'My Watermark', font: '20px Arial', color: 'rgba(0,0,0,0.5)', rotation: -45, opacity: 0.5 }, border: '1px solid red' }).then(canvas => { document.body.appendChild(canvas) }); ``` 这将创建一个800x600像素的画布,并在画布上添加一个旋转的水印和一个红色的边框。 HTML2Canvas是一个非常有用的工具,可以帮助您快速创建屏幕截图和PDF文件。但是,它可能无法完美地呈现某些HTML元素和样式,因此建议对其进行测试和调整,以确保输出结果符合预期。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

An1ong

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值