Angularjs - html to pdf using pdfmake.js

问题描述:

使用pdfmake.js在javascript中生成pdf。但是如果内容太大,它会生成一个空白文档。使用html2canvas创建画布并使用此创建PDF。如何解决这个问题?Angularjs - html to pdf using pdfmake.js

self.exportAsCanvas = function (contentObject, fileName, heading) { 
    var useWidth = $(contentObject)[0].offsetWidth; 
    var useHeight = $(contentObject)[0].offsetHeight; 
    //var graphContent = angular.element(contentObject).find('.graph-content'); 

    html2canvas(contentObject, { 
     onrendered: function (canvas) { 
      document.body.appendChild(canvas); 
      var data = canvas.toDataURL(); 

      var docDefinition = { 
       header: { text: heading, style: 'header' }, 
       footer: { 
        columns: [ 
         { text: 'Copyright © 2015 H&R Block. All Rights Reserved.', alignment: 'center',fontSize: 11 } 
        ] 
       },      
       pageOrientation: self.pageOrientation, 
       content: [{ 
        image: data, 
        fit: [1000, 1100] 
        //width: 500, 
        //height:1100 
       }], 
       styles: { 
        header: { 
         fontSize: 14, 
         bold: true, 
         alignment: 'center', 
         margin: [0, 10, 0, 10] 
        } 
       } 
      }; 

      pdfMake.createPdf(docDefinition).download(fileName + ".pdf"); 
     }, 
     width: useWidth, 
     height: useHeight 
    }); 
}; 
+0

你能告诉你的一些代码? – aqwright31

+0

@ aqwright31更新了代码:) – Aswathy

你应该尝试实现分页:

var docDefinition = { 
      header: { text: heading, style: 'header' }, 
      footer: { 
       columns: [ 
        { text: 'Copyright © 2015 H&R Block. All Rights Reserved.', alignment: 'center',fontSize: 11 } 
       ] 
      },      
      pageOrientation: self.pageOrientation, 
      content: [{ 
       image: data, 
       fit: [1000, 1100], 
       pageBreak: 'after', //PAGE BREAK 
       //width: 500, 
       //height:1100 
      }], 
      styles: { 
       header: { 
        fontSize: 14, 
        bold: true, 
        alignment: 'center', 
        margin: [0, 10, 0, 10] 
       } 
      } 
     }; 
+0

对不起。这也不起作用。新页面添加空内容:( – Aswathy