我使用html2canvas将网页捕获为jpeg,然后使用jsPDF将其转换为pdf doc。我在网页资源化方面面临问题,在加载少量图表之前捕获网页。但是在浏览器中,为了触发这个功能,所有的图都被加载了。这些图表使用其他js库,如d3,jVectorMap。有没有办法可以延迟渲染?
我使用此链接作为参考:
我正在使用的功能:
function export_PDF() {
//convert whole html page to canvas
html2canvas(document.body, {
onrendered: function(canvas) {
// canvas is the final rendered <canvas> element
var myImage = canvas.toDataURL("image/JPEG").slice('data:image/jpeg;base64,'.length);
// Convert the data to binary form
myImage = atob(myImage);
//new object of jspdf and save image to pdf.
var doc = new jsPDF();
doc.addImage(myImage, 'JPEG', 0, 0, 180,200);
doc.save('pdfName.pdf');
}
});
}
我试过这段代码,但是dint帮助我,因为它不会延迟渲染而只是创建画布:
html2canvas(document.body, {
"onrendered": function(canvas) {
setTimeout(function(){
//my code
}, 5000);
}
});