jsPdf using html2canvas.js for export pdf from html is not working for large data

后端 未结 2 889
南方客
南方客 2020-12-20 06:06

Hi I am using jsPdf for making pdf of html content, it is going fine for short content and creating pdf , but when I am trying to use it on large content with html2canvas.j

2条回答
  •  孤城傲影
    2020-12-20 06:17

    It is possible to create pdf for large files. There are primarily two ways to do this :

    1. html -> canvas -> image -> pdf (I assume you are trying this approach)

    2. html -> pdf (does not work if html contains svg)

    I would suggest you to go for (2) unless you have a good reason to go for (1) (like if you are have svg content)-- it is quite expensive operation for the browser and there is possibility of the browser crashing too.

    1. html -> canvas -> image -> pdf

    This is very neatly described here - https://github.com/MrRio/jsPDF/issues/339#issuecomment-53327389

    My experience when using this method - crashes when the pdf generated contains more than 2-3 pages. (tested on latest chrome and firefox)

    2. html -> pdf

    var pdf = new jsPDF('l', 'pt', 'a4');
     var options = {
        pagesplit: true
    };
    
    pdf.addHTML($('body'), 0, 0, options, function(){
        pdf.save("test.pdf");
    });
    

    This is way faster compared to above approach. Generates pdf containing 5-6 pages in 1-2 seconds!

    Hope this helps!

提交回复
热议问题