我在使用jspdf将图像添加到pdf时遇到问题。我得到的错误如下: 错误:getJpegSize无法找到图像的大小
以下是代码:
$scope.makePDF = function () {
var imgData = 'data:image/jpeg;base64,' + btoa('../img/myImage.jpg');
var doc = new jsPDF();
doc.setFontSize(12);
doc.addImage(imgData, 'JPEG', 15, 40, 180, 180);
答案 0 :(得分:2)
这里的问题是您没有加载图像数据。 “btoa”从'../ img / myImage.jpeg'创建一个Base64编码的ASCII字符串。
要获取图像数据,您需要从画布或物理图像创建图像数据。
更改
var doc = new jsPDF();
doc.setFontSize(12);
doc.addImage(imgData, 'JPEG', 15, 40, 180, 180);
要
var img = new Image(),
canvas = document.createElement("canvas"),
ctx = canvas.getContext("2d");
img.onload = function () {
ctx.drawImage(img, 0, 0 );
var imgData = canvas.toDataURL('image/jpeg');
var doc = new jsPDF();
doc.setFontSize(12);
doc.addImage(imgData, 'JPEG', 15, 40, 180, 180);
}
img.src = '../img/myImage.jpg';
我希望它有所帮助。
答案 1 :(得分:0)
我有同样的错误,但刚解决了。我不认为我的问题与Jason的问题相同,但也许它会帮助其他人解决与我类似的问题。我的问题是由于我在“
”中指定了'img'而不是'image'var imgData = canvas.toDataURL("img/jpeg", 1.0);
这让我有点试验和错误,因为控制台没有抱怨“img”而且我习惯在其他环境中将图像缩写为img,所以我必须只是胖了它。在类似的情况下,您还需要确保指定jpeg而不是jpg。