jspdf导出html(div)到pdf无法正常工作

时间:2016-10-11 21:46:08

标签: javascript jquery html pdf jspdf

我试图仅使用div内容生成PDF(可以有图像)

即时尝试HTML - > PDF

这可以帮助how to use addHTML function in jsPDF  和 jsPdf using html2canvas.js for export pdf from html is not working for large data

这是我的代码:

$("#pdfButton").click(function(){
  $(".compare_wrapper").clone().appendTo("#printDiv");
  var pdf = new jsPDF('l', 'pt', 'a4');
  var options = {
    pagesplit: true
  };
  pdf.addHTML($('#printDiv'), 0, 0, options, function(){
    pdf.save("test.pdf");
  });
  $("#printDiv").empty();
});
});
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.3.2/jspdf.debug.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/html2canvas/0.4.1/html2canvas.min.js"></script>

<div id="printDiv" style='padding:0;top:0;left:0;margin:0;' hidden></div>

<div class="row">  
        <div class="compare_wrapper col-md-12"> <!--Here i show the data-->

它给我这个错误: jspdf.debug.js:4455未捕获错误:提供的数据不是JPEG

我试试

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

并且工作,但显示我所有的身体,我只需要div id =“printDiv”的内容我使用lib html2canvas

1 个答案:

答案 0 :(得分:1)

你应该能够使用JQuery选择器在pdf中选择你想要的div,如下所示:

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