首页 文章

如何检测高度jsPDF-AutoTable

提问于
浏览
0

我正在使用jspdf autotable插件(jspdf.plugin.autotable.js和jspdf.min.js)在PDF文档中制作表格网格视图 . 这是我的代码:

var listpaket2 = '<?php echo json_encode($new_array_list_paket_min_15_persen); ?>'
var columns = ["Nama Balai","Kode Satker","Kode PPK","Nama "];
var rows = jQuery.parseJSON(listpaket2); //listpaket2 contain dynamic big data it is about 5000 rows of record
doc.autoTable(columns, rows, {
styles: {fillColor: [100, 255, 255]},
columnStyles: {
id: {fillColor: 255}
 },
 addPageContent: function(data) {
 }
});
alert(doc.height)

当我在做 alert(doc.height) 时,我得到"undefined" . 这不是我的期望 . 当表包含大数据时如何检测表高度?

1 回答

  • 0

    您可以使用提供的hooks在每次绘制单元格时设置新的表高度,如下所示:

    var height = 0;
    doc.autoTable(columns, rows, {
        styles: {fillColor: [100, 255, 255]},
        columnStyles: {
            id: {fillColor: 255}
        },
        addPageContent: function(data) {},
        createdCell: function (cell, data) {
            height = data.table.height
        }
    });
    alert(height)
    

    现在上面的实现工作到v2.3.5,v3仅在4天前(在写入时)预发布,然后这个钩子将被删除 . 此时看起来你可以使用新的钩子: didParseCell 像这样:

    var height = 0;
    doc.autoTable(columns, rows, {
        styles: {fillColor: [100, 255, 255]},
        columnStyles: {
            id: {fillColor: 255}
        },
        didParseCell: function (HookData) {
            height = HookData.table.height
        }
    });
    alert(height)
    

    请注意,addPageContent也将在v3中删除 . 其他事情可能仍会改变,如果您决定升级,请检查您的实施情况 .

相关问题