Javascript 错误:使用jspdf时PNG文件不完整或损坏

Javascript 错误:使用jspdf时PNG文件不完整或损坏,javascript,html,jspdf,Javascript,Html,Jspdf,当我单击“创建pdf”图标时,我想在我的pdf中添加两幅图像。 第一个图像是一个画布,可以转换为图像,并且可以正常工作 var canvas = document.getElementsByClassName("jade-schematic-diagram"); img = canvas[0].toDataURL("image/png"); img.id="pic2"; doc = new jsPDF({ unit:'px', format:'a4' }); doc.addIm

当我单击“创建pdf”图标时,我想在我的
pdf
中添加两幅图像。 第一个图像是一个画布,可以转换为图像,并且可以正常工作

var canvas = document.getElementsByClassName("jade-schematic-diagram");
img = canvas[0].toDataURL("image/png");
img.id="pic2";
doc = new jsPDF({
    unit:'px', 
    format:'a4'
});
doc.addImage(img, 'JPEG', 20, 20,400,150); 
我的这段代码出现以下错误:

错误:PNG文件不完整或损坏

我是在我的html头标签中添加这些脚本的

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script type="text/javascript" src="//cdn.rawgit.com/niklasvh/html2canvas/0.5.0-alpha2/dist/html2canvas.min.js"></script>
<script type="text/javascript" src="//cdn.rawgit.com/MrRio/jsPDF/master/dist/jspdf.min.js"></script>
<script type="text/javascript" src="zlib.js"></script>
<script type="text/javascript" src="png.js"></script>
<script type="text/javascript" src="addimage.js"></script>
<script type="text/javascript" src="png_support.js"></script>


请帮帮我。我搜索了很多,但什么也没找到。

onrendered
是一个异步函数,不是吗

因此,您必须将
srcpath
放在
onrendered

html2canvas(element, {
    onrendered: function (canvas) {
        srcpath = canvas.toDataURL("image/png");
        imgageData.src=srcpath;
        doc.addImage(imgageData , 'PNG',  20, 20,400,150);
    }
});

将图像发送到jsPDF时,图像尚未完成加载。因此,为了确保图像在添加到文档之前已完成加载,请将以下内容添加到代码中:

var myImage = new Image();
myImage .src = 'https://www.myserver.com/somepath/myImage.png';
myImage .onload = function(){
doc.addImage(myImage , 'png', 5, 5, 40, 10);
doc.save('myPDF.pdf');
};
var myImage = new Image();
myImage .src = 'https://www.myserver.com/somepath/myImage.png';
myImage .onload = function(){
doc.addImage(myImage , 'png', 5, 5, 40, 10);
doc.save('myPDF.pdf');
};