Как определить высоту jsPDF-AutoTable - PullRequest
0 голосов
/ 29 ноября 2018

Я использую плагин jspdf для автозагрузки (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 голосов
/ 05 декабря 2018

Вы можете установить новую высоту таблицы каждый раз, когда ячейка была нарисована, используя 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.Другие вещи могут все еще измениться, проверьте свою реализацию, если вы решите обновить.

...