无法为Base64 PNG图像添加到JSPDF的Javascript

无法为Base64 PNG图像添加到JSPDF的Javascript

问题描述:

function save_pdf() { 
var doc = new jsPDF(); 
var imgSampleData ='data:image/png;base64,/9j/4AAQSkZJRgABAAEA8ADwAAD/2w...'; 
doc.addImage(btoa(imgSampleData), 'PNG', 15, 40, 175, 75); 
doc.save('MCR.pdf'); 
} 
<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.3.5/jspdf.debug.js"></script> 

当我路过的base64字符串从我无法将这些base64s添加到下面JSPDF的图像web服务的一个是我在IE无法为Base64 PNG图像添加到JSPDF的Javascript

得到错误不完整或损坏的PNG文件

enter image description here

。我已整幅图像的整个的base64字符串。如果我使用任何在线转换工具,此Base64可以正常工作并能够看到图像。

Attachement base64 png string

可能是什么原因JSPDF无法分析这种类型的base64字符串和其他似乎已成功解析字符串的原因是什么?

+1

尝试将base64字符串复制粘贴到浏览器的url栏中。如果您无法看到图像,则字符串可能已损坏。 – elarmando

+0

谢谢@elarmando字符串工作正常!所以不会损坏 –

+0

我看到您正在调用btoa函数,如果字符串已经在base64中,则不需要调用btoa – elarmando

图像的Base64数据是JPEG,所以是错误。

var imgSampleData ='data:image/jpeg;base64,/9j/4AAQSkZJRgABAAEA8ADwAAD/2w...'; 

data:image/png必须被改变为data:image/jpeg和JSPDF没有认识到的是,如果数据是JPEG和在上面的行失败。我提出了一个JSPDF的问题。