2017-02-11 1 views
0

특정 웹 페이지를 pdf로 자동 저장하려고합니다. 그 때문에 나는 jsPDF을 만났습니다. 대상 페이지의 코드가 작동하지 않습니다. 그래서 나는 더미 코드를 만들었습니다 :jsPDF로 pdf를 저장하면 오류가 발생합니다. 정의되지 않은 'elementHandlers'속성을 읽을 수 없습니다.

$.getScript('https://cdnjs.cloudflare.com/ajax/libs/jspdf/0.9.0rc1/jspdf.min.js'); 

var doc = new jsPDF(); 

var pdfStr = "<div><div>Mahesh</div><img src=\"https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png\" /></div>" 

//creating dom from string 
var div = document.createElement('div'); 
div.innerHTML = pdfStr; 
var pdfHtml = div.childNodes; 
doc.fromHTML(pdfHtml); 
doc.save('pdfjsdemo.pdf'); 

나는 Chromes 콘솔에 다음 코드를 붙여 넣기하고 Enter 키를 눌러 복사합니다. 그것은 저를주고있다 :

Uncaught TypeError: Cannot read property 'elementHandlers' of undefined 
    at Object.f.fromHTML (jspdf.min.js:75) 
    at <anonymous>:11:5 

나는 형식 <div><div></div><img></img></div>에서 DOM 문자열을 사용하기 때문에 내 대상 페이지의 모습을 어떻게 먹으 렴. 내가 원하는 PDF 파일을 저장

doc.text("<div>mahesh</div>"); 

를 사용하는 경우

게다가, 그것은 작동합니다.

그럼 어떻게 될까요?

github에는 많은 유사한 스레드가있는 것 같습니다. 그것은 불가능합니다. 또는 jspdf에 대한 더 나은 대안은 무엇입니까?

답변

0

div.childNodes은 배열을 반환합니다. 첫 번째 요소가 필요합니다.
var pdfHtml = div.childNodes;var pdfHtml = div.childNodes[0];

+0

으로 대체 하시겠습니까? 여전히 작동하지 않습니다. 네가 한 말을 정확하게 시도했다. – Mahesha999

+0

또한 [here] (http://rawgit.com/MrRio/jsPDF/master/)에서 설명한대로 addImage를 사용해 보았습니다. 하지만 제 PNG입니다. 그리고 그것은 분명히 png가 현재 콘솔 오류에서 분명하게 지원되지 않는다고 말합니다 ... 꽤 쓸데없는 것 같습니다 ... – Mahesha999

+0

아니요, 코드에서이 문제 하나를 발견했습니다. 그 당시 저의 평판은 너무 낮아서 작성하지 않았습니다. 논평. fromHTML 함수는 1 개 이상의 매개 변수를 사용하는 것으로 보입니다. 이 주제를 확인하십시오 : [link] (http://stackoverflow.com/questions/22184659/cannot-make-pdf-from-html-div-by-jspdf). 이것에 따라 네 번째 매개 변수로 'elementHandlers' 속성을 가진 객체가 전달되어야합니다. – barbsan

관련 문제