Javascript 来自HTML图像的jsPDF导致pdf为空

Javascript 来自HTML图像的jsPDF导致pdf为空,javascript,html,angularjs,pdf,jspdf,Javascript,Html,Angularjs,Pdf,Jspdf,我试图用Tinymce内容生成一个pdf,我用AngularJS访问它。为此,我使用jspdf中的from_html插件 首先是相关的代码部分 相关函数和索引.ejs jspdf包括 //相关函数 变量specialElementHandlers={ “#绕过我”:函数(元素、渲染器){ 返回true; } }; var保证金={ 排名:0, 左:0,, 右:0,, 底部:0 }; var tinymcetojspfhtml=document.createElement(“body”); ti

我试图用Tinymce内容生成一个pdf,我用AngularJS访问它。为此,我使用jspdf中的from_html插件

首先是相关的代码部分

相关函数和索引.ejs jspdf包括

//相关函数
变量specialElementHandlers={
“#绕过我”:函数(元素、渲染器){
返回true;
}
};
var保证金={
排名:0,
左:0,,
右:0,,
底部:0
};
var tinymcetojspfhtml=document.createElement(“body”);
tinymcetojspfhtml.innerHTML=$scope.selectedItem.content;
var doc=new jsPDF();
doc.fromHTML(tinymcetojspfhtml,0,0{
“宽度”:100,//PDF上内容的最大宽度
“elementHandlers”:specialElementHandlers
},函数(a){console.log(a);},边距);
doc.save('project.pdf')

我找到了解决问题的方法。使用
fromHTML
插件时,在回调中保存pdf非常重要,因为否则在保存文档时无法完成渲染

doc.fromHTML(tinymcetojsdpfhtml,0,0{
“宽度”:100,//PDF上内容的最大宽度
“elementHandlers”:specialElementHandlers
},
函数(bla){doc.save('savencallback.pdf');},
保证金);

感谢@FroZenViper为我指出了回调解决方案,然后我可以使用setTimeout:)-jsPDF版本1.5.3解决它

doc.fromHTML(yourTargetHTML, 0, 0, {
    // options
},

setTimeout(function () {
    doc.save(`fileName`);
}, 0);  

你刚刚救了我的命。。。向上投票,向上投票,向上投票百万次!:)使用
fromHTML()
时,您是否遇到过PDF文档中图像太大的问题?我的回调中的代码从未执行过,您知道原因吗?@FroZenViper我可以在单击按钮时下载文本。但是,我无法下载图像和画布。@A.Sakkeer将您的画布转换为imagebase64(canvas.toDataUrl('image/jpeg'),然后您可以将其导出。对于SVG,您可以使用canvg库()首先渲染画布