2017-12-04 3 views
0

HTMLからPDFを生成したいが、PDFに異なるテキストが含まれることがある。 私は "specialElementHandlers"を使用していくつかの要素を変更しようとしています。 (少なくとも、「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 
     }, 
...