jsPDF可自动调整右对齐x位置错误

时间:2017-01-30 10:43:13

标签: javascript pdf-generation jspdf jspdf-autotable

我的示例(只需点击"导出PDF"):https://jsfiddle.net/j9vaqpnz/7/

我的示例导出了我的表,如下所示:

enter image description here

然后使用库jspdfautotable将表格导出为pdf。

在导出功能期间,我使用" drawCell"函数和包含数字的所有列i右对齐它们如下:

drawCell: function (cell, data) {
                var col = data.column.index;
                if(col==3 || col==5 || col==6 || col==7 || col==8 || col==9 || col==10){
                    cell.styles.halign = 'right';
                }
            }

问题:在PDF中,我右对齐的所有列都正确定位,它看起来像这样:

enter image description here

这是一个错误吗?或者也许我正在使用" drawCell" inproperly?

2 个答案:

答案 0 :(得分:3)

使用“createdCell”和“createdHeaderCell”时,右对齐可正确定位元素。

更新示例:https://jsfiddle.net/j9vaqpnz/10/

新守则:

...
createdHeaderCell: function (cell, data) {
    alignCol(cell, data);
},
createdCell: function (cell, data) {
    alignCol(cell, data);
}
...

function alignCol(cell, data){
    var col = data.column.index;
    if(col==3 || col==5 || col==6 || col==7 || col==8 || col==9 || col==10){
        cell.styles.halign = 'right';
    }
}

答案 1 :(得分:1)

您可以使用 columnStyles 属性对齐单元格

const pdf = new jsPDF();

pdf.autoTable({

    ...

    columnStyles: {
        3: {
            halign: 'right'
        },
        5: {
            halign: 'right'
        },
        6: {
            halign: 'right'
        },
        7: {
            halign: 'right'
        },
        8: {
            halign: 'right'
        },
        9: {
            halign: 'right'
        },
        10: {
            halign: 'right'
        }
    }
});

jsPDF-AutoTable documentation