Javascript 有没有办法结合使用JSPDF和html2canvas在移动浏览器上加速PDF下载?

Javascript 有没有办法结合使用JSPDF和html2canvas在移动浏览器上加速PDF下载?,javascript,reactjs,jspdf,html2canvas,Javascript,Reactjs,Jspdf,Html2canvas,我正在使用html2canvas和jspdf的组合从DOM文件创建PDF,以将DOM的一部分转换为图像,然后将其添加到创建的相应PDF文件中 这在桌面浏览器上运行良好,但在移动浏览器上运行速度非常慢 您可以在移动浏览器上测试该问题,方法是转到下面提到的链接,然后选择任何模板,然后单击下载选项 下面是各个画布到pdf转换的功能代码 printTemplate = () => { const input = document.getElementById("main-doc

我正在使用html2canvas和jspdf的组合从DOM文件创建PDF,以将DOM的一部分转换为图像,然后将其添加到创建的相应PDF文件中

这在桌面浏览器上运行良好,但在移动浏览器上运行速度非常慢

您可以在移动浏览器上测试该问题,方法是转到下面提到的链接,然后选择任何模板,然后单击下载选项

下面是各个画布到pdf转换的功能代码

 printTemplate = () => {
        const input = document.getElementById("main-document");

        html2canvas(input, {
            scale: 2
        })
            .then((canvas) => {
                const imgData = canvas.toDataURL('image/png');
                const pdf = new jsPDF("p", "mm", "a4", true);

                let width = pdf.internal.pageSize.getWidth();
                let height = pdf.internal.pageSize.getHeight();

                pdf.addImage(imgData, 'PNG', 0, 0, width, height, '', 'FAST');
                pdf.save("countenance-resume.pdf");
            });

    }
我希望它能与PDF在桌面上下载所需的时间相媲美,如果不是更少。

尝试使用

const imgData = canvas.toDataURL('image/jpeg', 1.0);
pdf.addImage(imgData, 'JPEG', 0, 0, width, height, '', 'FAST');
而不是

const imgData = canvas.toDataURL('image/png');
pdf.addImage(imgData, 'PNG', 0, 0, width, height, '', 'FAST');

据我所知,jsPDF无论如何都会将PNG图像转换为JPEG,因此转换需要更长的时间,如果您直接使用JPEG,这是可以避免的。

感谢您的回复。你完全正确。移动设备上的JPEG比PNG工作得更好。然而,桌面浏览器上的JPEG引起了一个问题。因此,最佳的解决方案是在桌面浏览器中使用PNG格式,在移动浏览器中使用PNG格式。很高兴这有帮助。