代码之家  ›  专栏  ›  技术社区  ›  Simsons

如何保存使用html2canvas呈现所有div时执行回调/操作

  •  0
  • Simsons  · 技术社区  · 6 年前

    我正在迭代DIV列表,将它们转换为画布,然后将它们添加到JSPDF中。

    做完这些之后,我把它们保存到磁盘上。

       function exportDataTablesAsPDF() {
            var dataTablesToBeExported = $('.js-exportdiv');
    
    
            $.each(dataTablesToBeExported, function (index, element) {
    
                html2canvas(element).then(function (canvas) {
                    var img = canvas.toDataURL("image/png");
                    masterPdf.addImage(img, 'PNG', 0, 0,canvas.width,canvas.height);
                });
            });
           masterPdf.save("Test.pdf");
        }
    

    但这里的问题是,masterpdf.save()在所有画布回调完成之前执行。

    在将所有图像添加到文档之前,将下载PDF。有办法吗,我可以等所有人 then(canvas) 完成并下载PDF。

    1 回复  |  直到 6 年前
        1
  •  3
  •   Umang Raghuvanshi    6 年前

    你可以试着打电话 masterPdf.save 在添加了所有图像之后。

    类似的东西

     function exportDataTablesAsPDF() {
            var dataTablesToBeExported = $('.js-exportdiv');
            var numberOfImages = dataTablesToBeExported.length;
    
    
            $.each(dataTablesToBeExported, function (index, element) {
    
                html2canvas(element).then(function (canvas) {
                    var img = canvas.toDataURL("image/png");
                    masterPdf.addImage(img, 'PNG', 0, 0,canvas.width,canvas.height);
                    if (index + 1 == numberOfImages) { masterPdf.save("Test.pdf"); }
                });
            });
        }