2017-10-21 191 views
0
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

回答

0

圖像的Base64數據是JPEG,所以是錯誤。

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

data:image/png必須被改變爲data:image/jpeg和JSPDF沒有認識到的是,如果數據是JPEG和在上面的行失敗。我提出了一個JSPDF的問題。