jsPDF多页面PDF与HTML渲染器

56
我在我的网站上使用jsPDF来生成PDF文件。但现在我有多个DIV要在一个PDF中打印,可能需要2到3页。 例如:

我在网站中使用jsPDF生成PDF,但现在我需要在单个PDF中打印多个DIV,这可能需要2到3页。

例如:

<div id="part1">
  content
</div>

<div id="part2">
  content
</div>

<div id="part2">
   content
</div>

我的JS代码

  • 这个代码能够运行,但并不符合我的预期,它会添加一部分内容(不能在多个页面中包含)。
  • 它会移除像br、h1等的HTML标签。
    function formtoPDF() {
      jsPDF.API.mymethod = function() {
        // 'this' will be ref to internal API object. see jsPDF source
        // , so you can refer to built-in methods like so:
        //   this.line(....)
        //   this.text(....)
      };
      var doc = new jsPDF();
      doc.mymethod();
      var pdfPart1 = jQuery('#genPDFpart1');
      var pdfPart2 = jQuery(".ltinerary");
      var pdfPart3 = jQuery("#domElementHTML");
      var specialElementHandlers = {
        '#loadVar': function(element, renderer) {
          return true;
        }
      };
      doc.fromHTML(pdfPart1.html() + pdfPart3.html() + pdfPart3.html(), 15, 15, {
        'width': 170,
        'elementHandlers': specialElementHandlers
      });
      doc.output('save', 'Download.pdf');
    }

这个问题的解决方案是什么?


1
各位好,有没有解决这个问题的方案? - manipvd
需要将单个图像分割成多个页面怎么办? - Suraz Khanal
我们如何缩放/取消缩放内容以适应页面大小。我的意思是在第一页上使用pdfPart1.html(),在第二页上使用pdfPart2.html(),依此类推。 - programmers_view
11个回答

0
var a = 0;
var d;
var increment;

for(n in array){
    d = a++;        

    if(n % 6 === 0 && n != 0){
        doc.addPage();
        a = 1;
        d = 0;
    }

    increment = d == 0 ? 10 : 50;
    size = (d * increment) <= 0 ? 10 : d * increment;

    doc.text(array[n], 10, size);
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接