我正在使用jsPDF AutoTable(https://github.com/simonbengtsson/jsPDF-AutoTable)。
我有一个带有rowspan =“ 2”的HTML表,当用该表生成pdf时,不再有rowspan =“ 2”了:(
我修改了插件以添加rowSpan属性(请参见[[[[[[[ADDED]]]] mark):
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的所有数据都在同一行上,我不知道为什么。
抱歉,我没有声誉,因此无法发布屏幕截图。
最佳答案
jspdf-autotable
插件当前仅支持转换html表中的数据。所有样式(包括行跨度等)都必须手动应用。有一个示例(code)(demo)显示了如何完成此操作。