首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在捕获html的图像(包括签名画布)时,有关safari的问题

在捕获html的图像(包括签名画布)时,有关safari的问题
EN

Stack Overflow用户
提问于 2022-01-20 07:06:11
回答 1查看 82关注 0票数 1

我正在进行一个reactjs项目,并试图捕获HTML来创建图像,包括签名的画布。它在firefox和chrome上工作,但不使用safari。图像由空画布生成。

反应签名画布

Html到图像

代码语言:javascript
复制
this.setState({ formInput: document.getElementById("form-pdf") }) 

generateImage(data) {
    const input = this.state.formInput;
    let apiService = new ApiServices();
    if (input) {
        await htmlToImage.toBlob(input)
            .then((blob) => {
                console.log(blob,'blob')
                let file = new File([blob], "image.png", { type: "image/png" })
                if (data) {
                    let body = new FormData();
                    apiService.http.post(this.getAPINames().Upload, body, {
                        headers: {
                            'Accept': 'application/json',
                            'Content-Type': 'multipart/form-data',
                        },
                        timeout: 100000,
                    }).then(response => {
                        console.log("Success")
                    }).catch(failure => {
                        hideLoader();
                        if (isDev) {
                            console.log("on upload image error:", failure)
                        }
                    });
                }
            })
            .catch((error) => {
                if (isDev) {
                    console.log(error)
                }
            })
    }
}
EN

回答 1

Stack Overflow用户

发布于 2022-05-27 12:15:20

我解决了这个问题,只需双执行html到image函数,所以在您的例子中可以这样:

代码语言:javascript
复制
generateImage(data) {
    const input = this.state.formInput;
    let apiService = new ApiServices();
    if (input) {
        await htmlToImage.toBlob(input)
            .then(function(){
                await htmlToImage.toBlob(input)
                .then((blob) => {
                    console.log(blob,'blob')
                    let file = new File([blob], "image.png", { type: "image/png" })
                    if (data) {
                        let body = new FormData();
                        apiService.http.post(this.getAPINames().Upload, body, {
                            headers: {
                                'Accept': 'application/json',
                                'Content-Type': 'multipart/form-data',
                            },
                            timeout: 100000,
                        }).then(response => {
                            console.log("Success")
                        }).catch(failure => {
                            hideLoader();
                            if (isDev) {
                                console.log("on upload image error:", failure)
                            }
                        });
                    }
                })
                .catch((error) => {
                    if (isDev) {
                        console.log(error)
                    }
                })
            })
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70782001

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档