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 下载下来了! 

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Reacthtml2canvas 是两个不同的工具,可以一起使用来实现将 React 组件转换为像的功能。 React 是一个用于构建用户界面的 JavaScript 库,它可以帮助开发者构建交互式的单页面应用。而 html2canvas 是一个 JavaScript 库,它可以将网页的 DOM 元素转换为像。 要在 React 中使用 html2canvas,首先需要安装 html2canvas 库。可以通过 npm 进行安装: ``` npm install html2canvas ``` 然后,在 React 组件中引入 html2canvas 并使用它来转换 DOM 元素为像。可以使用 `ref` 属性来获取要转换的元素的引用。以下是一个示例代码: ```jsx import React, { useRef } from 'react'; import html2canvas from 'html2canvas'; function MyComponent() { const componentRef = useRef(null); const handleCapture = () => { html2canvas(componentRef.current).then(canvas => { // 在这里可以处理生成的像,例如保存或显示在页面上 document.body.appendChild(canvas); }); }; return ( <div> <div ref={componentRef}> {/* 这里是要转换为像的内容 */} </div> <button onClick={handleCapture}>Capture</button> </div> ); } ``` 在上面的示例代码中,我们创建了一个包含一个要转换为像的 `<div>` 元素和一个按钮的 React 组件。通过 `ref` 属性将 `<div>` 元素与 `componentRef` 关联起来。当点击按钮时,调用 `handleCapture` 函数,该函数使用 html2canvas 将 `componentRef.current` 转换为像,并将生成的 canvas 元素添加到页面中。 这只是一个简单的示例,你可以根据自己的需求对像进行进一步的处理。希望对你有帮助!如果你还有其他问题,请继续提问。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

我要当前端工程师

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

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

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

打赏作者

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

抵扣说明:

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

余额充值