簡體   English   中英

來自 HTML 表格的 jsPDF AutoTable rowspan/colspan

[英]jsPDF AutoTable rowspan/colspan from HTML table

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

我有一個帶有 rowspan="2" 的 HTML 表格,當使用此表格生成 pdf 時,不再有 rowspan="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 的所有數據都在同一行,我不知道為什么。 抱歉,我無法發布屏幕截圖,因為我沒有聲譽。

編輯:Rowspans,colspans和CSS樣式現在支持,並應工作開箱文檔

jspdf-autotable插件目前只支持從 html 表格轉換數據。 所有樣式,包括 rowspans 等都必須手動應用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM