我正在遍历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。
答案 0 :(得分:3)
添加完所有图像后,您可以尝试致电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"); }
});
});
}