[HTML表格中的jsPDF AutoTable行跨度/列跨度] >>

问题描述 投票:2回答:1

我正在使用jsPDF AutoTable(https://github.com/simonbengtsson/jsPDF-AutoTable)。

我有一个带有rowspan =“ 2”的HTML表,当用该表生成pdf时,不再有rowspan =“ 2”了:(

I修改插件来添加属性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的所有数据都在同一行上,我不知道为什么。抱歉,我无法发布屏幕截图,因为我没有这个声誉。

我正在使用jsPDF AutoTable(https://github.com/simonbengtsson/jsPDF-AutoTable)。我有一个带有rowspan =“ 2”的HTML表,当用该表生成pdf时,不再有rowspan =“ 2”了:( ... ... >>

javascript canvas html-table jspdf
1个回答
3
投票

编辑:行距,列距和css样式现已受支持,并且可以直接使用docs

[jspdf-autotable插件当前仅支持从html表转换数据。所有样式(包括行距等)都必须手动应用。

© www.soinside.com 2019 - 2024. All rights reserved.