2015-11-08 105 views
2

我使用jsPDF AutoTable(https://github.com/simonbengtsson/jsPDF-AutoTable)。jsPDF AutoTable rowspan/colspan from HTML table

我有rowspan的一個HTML表=「2」,並且當與這個表中生成的PDF,沒有行跨度=「2」了:(

我修改插件來添加ROWSPAN屬性(見[[[[[ADDED]]]]]標記):

var autoTableHtmlToJson = function(table){ 

    var data = [], 
     headers = [], 
     header = table.rows[0], 
     tableRow, 
     rowData, 
     i, 
     j; 

    for(i = 0 ; i < header.cells.length;i++){ 
     headers.push((typeof header.cells[i] !== "undefined") ? header.cells[i].textContent : ""); 
    } 

    for(i = 1 ; i < table.rows.length; i++){ 
     tableRow = table.rows[i]; 
     rowData = []; 

     for(j = 0; j < header.cells.length; j++){ 
      if(typeof tableRow.cells[j] !== "undefined"){ 
       rowData.push({ 
        value : tableRow.cells[j].textContent, 
        rowSpan : tableRow.cells[j].rowSpan <==== [[[[[ ADDED ]]]]] 
       }); 
      } 
      else{ 
       rowData.push({ 
        value : "", 
        rowSpan : 1 <==== [[[[[ ADDED ]]]]] 
       }); 
      } 
     } 
     data.push(rowData); 
    } 
    return { columns:headers, data:data, rows:data } 
}; 

接着針對每個小區來繪製我有:

drawCell: function (cell, data) { 
        doc.rect(cell.x, cell.y, cell.width, cell.height * cell.raw.rowSpan, 'S'); 
        doc.autoTableText(cell.raw.value,cell.x + cell.width/2, cell.y + cell.height * cell.raw.rowSpan, { 
        halign: 'center', 
        valign: 'middle', 
        overflow: 'linebreak' 
       }); 
       return false; 

       } 

的ROWSPAN具有drawCell權值,但PDF結果是非常錯誤! pdf有同一行上的所有數據,我不知道爲什麼。 對不起,我無法發佈截圖,因爲我沒有聲譽。

+0

請閱讀並遵循此[指南](http://stackoverflow.com/help/mcve)。提供您的HTML/JS,以便其他人可以嘗試幫助您。 – Romulo

+0

好吧,我添加了JS代碼。感謝你提到它 – riwanab

回答

2

jspdf-autotable插件目前只支持從html錶轉換數據。所有造型,包括rowpans等都必須手動應用。有一個例子(code)(demo)顯示瞭如何做到這一點。

相關問題