2015-11-08 161 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)显示了如何做到这一点。

相关问题