Cannot make PDF from Html div by jsPDF

Pavel Lankmiler picture Pavel Lankmiler · Mar 4, 2014 · Viewed 48.8k times · Source

I have this js code :

var doc = new jsPDF();

$('#pdf_new').click(function(){
    var html=$(".wrap_all").html();
    doc.fromHTML(html,200,200, {
        'width': 500,
    });
    doc.save("Test.pdf");
});

In html I have code like this :

<div class = 'wrap_all'>
    <div id = 'wrap_odd'> <div id = ''>....</div> </div>

    <div id = 'wrap_even'> <div id = ''>....</div> </div>
</div>

Nothing works ... Console return to me:

Cannot read property #wrap_odd of undefined"

(P.S sorry for my English)

Answer

Vijayamaharaj picture Vijayamaharaj · Apr 10, 2014

When using 'fromHTML' to take text from a HTML from for the PDF you are creating using JSPDF, you should have an elementHandler function to render out the unwanted < div >.

Try following the same patern as shown in the example at JSPDF@GitHub.

your end code should look like this:

var doc = new jsPDF();

    var specialElementHandlers = {
      'DIV to be rendered out': function(element, renderer){
       return true;
    }
    };


    $('#pdf_new').click(function(){
      var html=$(".wrap_all").html();
         doc.fromHTML(html,200,200, {
            'width': 500,
            'elementHandlers': specialElementHandlers
         });
      doc.save("Test.pdf");
    });