无法使用jspdf将图像添加到pdf。返回getJpegSize错误

时间:2014-07-15 22:46:39

标签: javascript image-processing jspdf

我在使用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);

2 个答案:

答案 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。

相关问题