React 屏幕截图生成器 html2canvas

简介

通过 html2canvas 可以实现截取屏幕中显示内容,并生成图片下载下来。

安装

npm install --save html2canvas

安装插件

引入

import html2canvas from "html2canvas";

在需要引入的页面进行引入

使用

对需要截图的区域设置id

  <div id='test' style={{ textAlign: "center",padding:'20px 0' }}>
                            <div style={{ textAlign: 'center', fontSize: 18 }}>{item.teacherTenantName}邀请您加入评课</div>
                            <div style={{ color: '#a9a9a9', fontSize: '15px', marginTop: 10 }}>
                                <div>{item.appraiseTitle}</div>
                                <div>
                                    <span>授课教师:</span><span>{item.teacherName}</span>
                                </div>
                                <div ><span>开始时间:</span><span>{moment(item?.startTime).format("YYYY-MM-DD dddd HH:mm")}</span></div>
                                <div ><span>授课单位:</span><span>{item.teacherTenantName}</span></div>
                                <div ><span>课程时长:</span><span>{item.duration}分钟</span></div>
                                <div>
                                    <span>评课人员:</span><span>{evaluatorObj[item.appraiseTeacherStudentStatus].desc}</span>
                                </div>
                                <div style={{ display: 'flex', justifyContent: 'center', margin: '20px 0px' }}>
                                    <QRCode id="qrEl" value={qrcodeUrl} size={100} fgColor="#000000" />
                                </div>
                                <div style={{ display: 'flex', justifyContent: 'center' }}>
                                    <Space size="large">
                                        
                                            <Button type="default" onClick={() => { onDownload(item.appraiseTitle) }}>
                                                下载
                                            </Button>
                                        
                                       <Button type="primary" onClick={copy}>复制链接</Button>
                                    </Space>
                                </div>
                            </div>
                        </div>

调用函数 

    const onDownload = (title) => {     
        html2canvas(document.getElementById('test')).then((canvas) => {
            const link = document.createElement("a");
            link.href = canvas.toDataURL();
            link.setAttribute("download", title + ".png");
            link.style.display = "none";
            document.body.appendChild(link);
            link.click();
          });

        // setDownloadUrl(url)
    }

 效果

 

将整个div 下载下来了! 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

我要当前端工程师

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

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

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

打赏作者

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

抵扣说明:

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

余额充值