2016-03-15 102 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) {