为什么下面的jspdf代码会打印下一页的数据?

时间:2016-08-25 05:19:58

标签: javascript jspdf

下面的代码是一个java脚本片段,它使用jspdf生成html文件的pdf。我正在使用HTML渲染器,它从a.jsp文件中获取内容,其id为#formcare。

function formpdf(){
         var doc = new jsPDF();
         var imgData = 'data:image/png;base64,iVBORwuy9B5xcZ3kvrHCTmy'; //image url
              doc.addImage(imgData, 'PNG', 90, 05, 25,25);
        doc.setFont("times");
        doc.setFontType("normal");
        doc.setFontSize("14");
        doc.text(90,35, 'IDeaS INDIA');
        doc.text(50,40,'Reimbursement Form For Employee Day Care');

        doc.setFontSize("12");
        doc.text(70,55,document.getElementById("date").value);
        doc.text(70,60,document.getElementById("name").value);
        doc.text(70,65,document.getElementById("department").value);
        doc.text(70,70,document.getElementById("designation").value);
        doc.text(70,75,document.getElementById("daycare").value);
        doc.text(70,80,document.getElementById("childName").value);
        doc.text(70,85,document.getElementById("dob").value);
        doc.text(70,90,document.getElementById("age").value);           

        var specialElementHandlers = {
              '#editor': function(element, renderer){
                  return true;
              }
        };

        //formcare is my tableId in .jsp file
         doc.fromHTML($('#formcare').get(0), 15, 50, {
              'width': 170, 
              'elementHandlers': specialElementHandlers
        });

         doc.text(10,190,'Note-Employees to ensure that the DAY CARE Center is registered under shop act establishment.');
        doc.text(10,200,'Employees will be responsible towards the safety of the child and company holds no obligation.'); 
        doc.save('form.pdf');           
    }

2 个答案:

答案 0 :(得分:4)

根据https://parall.ax/products/jspdf HTML渲染仍处于早期阶段。 它不支持CSS和样式。

因此,如果您希望单页中的文档,请检查您正在渲染的html / div。尝试减少html / div中的<br>或其他换行标记

答案 1 :(得分:3)

如果使用bootstrap进行样式化,这个问题就会解决!