2014-07-15 2 views
1

jspdf를 사용하여 pdf에 이미지를 추가하는 데 문제가 있습니다. 오류 : 다음과 같이 내가 오류 읽기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

참고 : 'btoa()'는 구형 브라우저와 대부분의 IE에서 지원되지 않습니다. – ArtOfCode

답변

2

여기서 문제는 이미지 데이터를로드하지 않은 것입니다 : getJpegSize 이미지 여기

의 크기를 찾을 수 없습니다하는 코드입니다. "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'; 

에 나는 그것이 도움이되기를 바랍니다.

0

나는이 같은 오류가 있었지만 방금 해결했습니다. 내 문제는 제이슨과 같지 않겠지 만 다른 사람들과 비슷한 문제로 도움이 될지도 모릅니다. 콘솔이 "IMG"에 대해 불평하지 않았고 내가 사용하고 있기 때문에,

var imgData = canvas.toDataURL("img/jpeg", 1.0); 
이 알아 내기 위해 나에게 약간의 시행 착오를했다

: 내 문제는 오히려에서 '이미지'보다 'IMG'지정하는 날의 결과 다른 문맥에서 이미지를 img로 약어화 했으니 까. 비슷한 맥락에서 jpg가 아닌 jpeg를 지정해야합니다.

관련 문제