javascript - 错误 :Incomplete or corrupt PNG file in using jspdf

标签 javascript html jspdf

当我点击“create-pdf”图标时,我想在我的 pdf 中添加 2 张图片。 第一个图像是一个转换为图像的 Canvas ,它可以正常工作。

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); 

我的这部分代码出现了这个错误:

Error: Incomplete or corrupt PNG file

var srcpath;
var element = $(".plot-waveforms"); // global variable
var imgageData = new Image();
imgageData.id = "pic";

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

我在我的 html head 标签中添加了这些脚本。

<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 是一个异步函数,不是吗? https://github.com/niklasvh/html2canvas/issues/470

所以你必须将 srcpath 放在 onrendered

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

关于javascript - 错误 :Incomplete or corrupt PNG file in using jspdf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38264135/

相关文章:

JavaScript Math.sqrt 性能

javascript - mapquest 指向 Javascript API 中 POI 的 map 中心

javascript - 将 Google Analytics 事件添加到表单提交

HTML/CSS(快速拨号)

html - 如何使 <div> 中的图像具有响应性?

javascript - 删除 jQuery 文本中 <> 之间的所有内容

javascript - 仅在线查看 PDF 文件

javascript - 如何在使用 jsPDF 时跳过某一列

javascript - 如果您的选择器对象无效,为什么 jQuery 不会轰炸?

javascript - 在 ionic 2 应用程序中打开 PDF 文件