2016-03-15 89 views
0

我需要一个网页上的按钮,可以立即将页面保存为PDF,使用相同的@media print css。所以它看起来完全像打印页面功能。使用jsPDF将etire网页保存为PDF格式

我看了看jsPDF,并试着在下面的代码。

Uncaught TypeError: Cannot read property 'name' of undefined

它必须是在我的整个网页的选择

source = $("html").html(); 

我的代码:

但是,试图选择整个网页时 我有以下错误
<script> 
    function demoFromHTML() { 
     var pdf = new jsPDF('p', 'pt', 'letter'); 
     // source can be HTML-formatted string, or a reference 
     // to an actual DOM element from which the text will be scraped. 
     source = $("html").html(); 

     // we support special element handlers. Register them with jQuery-style 
     // ID selector for either ID or node name. ("#iAmID", "div", "span" etc.) 
     // There is no support for any other type of selectors 
     // (class, of compound) at this time. 
     specialElementHandlers = { 
      // element with id of "bypass" - jQuery style selector 
      '#bypassme': function (element, renderer) { 
       // true = "handled elsewhere, bypass text extraction" 
       return true 
      } 
     }; 
     margins = { 
      top: 80, 
      bottom: 60, 
      left: 40, 
      width: 522 
     }; 
     // all coords and widths are in jsPDF instance's declared units 
     // 'inches' in this case 
     pdf.fromHTML(
     source, // HTML string or DOM elem ref. 
     margins.left, // x coord 
     margins.top, { // y coord 
      'width': margins.width, // max width of content on PDF 
      'elementHandlers': specialElementHandlers 
     }, 

     function (dispose) { 
      // dispose: object with X, Y of the last line add to the PDF 
      //   this allow the insertion of new lines after html 
      pdf.save('Test.pdf'); 
     }, margins); 
    } 
//</script> 
<a href="javascript:demoFromHTML()" class="button">Save as PDF</a> 

任何想法?

回答

0

那么你在你的HTML有一些行跨度或colspan属性有尝试删除,它会正常工作或在您的jspdf文件试试这个使用这条线

while (j < tableRow.cells.length) { 

代替

while (j < tableRow.cells.length && headers[j] != undefined) {