2017-12-04 15 views
0

HTML에서 PDF를 생성하고 싶지만 PDF에 다른 텍스트가 포함되는 경우가 있습니다. 그래서 일부 요소를 변경하기 전에 "specialElementHandlers"를 사용하여 PDF에 추가하려고합니다. (적어도 "changeme를"부분은 "bypassme는"완벽하게 작동) jspdf - 요소를 변경하는 specialElementHandlers

htmlToPDF(){ 
    var pdf = new jsPDF('p', 'pt', 'letter'); 
    var source = $('#HTMLtoPDF')[0]; 
    var specialElementHandlers = { 
     '#bypassme': function(element, renderer) { 
      return true 
     }, 
     '#changeme': function (element, renderer) { 
      return <h2>different text</h2> 
     } 
    }; 

는 지금,이 같은 일을하려고하지만, 작동하지 않습니다.

모든 종류의 도움에 감사드립니다.

답변

0

id에 추가하기 전에 변경하려면 specialElementHandler에 "false"를 반환하고 요소 자체를 변경해야합니다. 예컨대 : 당신이 전에 당신의 PDF의 elemnts을 복사해야

'#changeme': function (element, renderer) { 
      element.innerHTML = "<div>New Text</div>"; 
      return false; 

알 수 있습니다. 그렇지 않으면 웹 사이트 자체의 요소도 변경됩니다.

const html = source.outerHTML; 

    pdf.fromHTML (
     html // HTML string or DOM elem ref. 
     , margins.left // x coord 
     , margins.top // y coord 
     , { 
      'width': margins.width // max width of content on PDF 
      , 'elementHandlers': specialElementHandlers 
     }, 
...