I am using PDFKit library to build a table in my nodejs project. There are no issues if the table can fit in one page. The table break into next page when there are no enough spaces to fit the whole table, this will cause the first column which has merged together with other rows move down and make it not tallied with other column.
is there any solution to fix this?
My code:
const PDFDocument = require('pdfkit'); const fs = require('fs'); const doc = new PDFDocument(); doc.pipe(fs.createWriteStream('file.pdf')); // write to PDF doc.table({ data: [ [ { rowSpan: 22, border: true, backgroundColor: "#eef", text: "rowSpan: 3\n\nborder:\ntrue" }, { border: undefined, backgroundColor: "#eee", text: "border:\nundefined (default)" }, { border: [false, false, false, true], backgroundColor: "#ddd", text: "border:\n[false, false, false, true]" }, ], [ { border: 0, backgroundColor: "#eee", text: "border:\n0 (same as false)" }, { border: [false, true, true, false], backgroundColor: "#ddd", text: "border:\n[false, true, true, false]" }, ], [ { border: 0, backgroundColor: "#eee", text: "border:\n0 (same as false)" }, { border: [false, true, true, false], backgroundColor: "#ddd", text: "border:\n[false, true, true, false]" }, ], [ { border: 0, backgroundColor: "#eee", text: "border:\n0 (same as false)" }, { border: [false, true, true, false], backgroundColor: "#ddd", text: "border:\n[false, true, true, false]" }, ], [ { border: 0, backgroundColor: "#eee", text: "border:\n0 (same as false)" }, { border: [false, true, true, false], backgroundColor: "#ddd", text: "border:\n[false, true, true, false]" }, ], [ { border: 0, backgroundColor: "#eee", text: "border:\n0 (same as false)" }, { border: [false, true, true, false], backgroundColor: "#ddd", text: "border:\n[false, true, true, false]" }, ], [ { border: 0, backgroundColor: "#eee", text: "border:\n0 (same as false)" }, { border: [false, true, true, false], backgroundColor: "#ddd", text: "border:\n[false, true, true, false]" }, ], [ { border: 0, backgroundColor: "#eee", text: "border:\n0 (same as false)" }, { border: [false, true, true, false], backgroundColor: "#ddd", text: "border:\n[false, true, true, false]" }, ], [ { border: 0, backgroundColor: "#eee", text: "border:\n0 (same as false)" }, { border: [false, true, true, false], backgroundColor: "#ddd", text: "border:\n[false, true, true, false]" }, ], [ { border: 0, backgroundColor: "#eee", text: "border:\n0 (same as false)" }, { border: [false, true, true, false], backgroundColor: "#ddd", text: "border:\n[false, true, true, false]" }, ], [ { border: 0, backgroundColor: "#eee", text: "border:\n0 (same as false)" }, { border: [false, true, true, false], backgroundColor: "#ddd", text: "border:\n[false, true, true, false]" }, ], [ { border: 0, backgroundColor: "#eee", text: "border:\n0 (same as false)" }, { border: [false, true, true, false], backgroundColor: "#ddd", text: "border:\n[false, true, true, false]" }, ], [ { border: 0, backgroundColor: "#eee", text: "border:\n0 (same as false)" }, { border: [false, true, true, false], backgroundColor: "#ddd", text: "border:\n[false, true, true, false]" }, ], [ { border: 0, backgroundColor: "#eee", text: "border:\n0 (same as false)" }, { border: [false, true, true, false], backgroundColor: "#ddd", text: "border:\n[false, true, true, false]" }, ], [ { border: 0, backgroundColor: "#eee", text: "border:\n0 (same as false)" }, { border: [false, true, true, false], backgroundColor: "#ddd", text: "border:\n[false, true, true, false]" }, ], [ { border: 0, backgroundColor: "#eee", text: "border:\n0 (same as false)" }, { border: [false, true, true, false], backgroundColor: "#ddd", text: "border:\n[false, true, true, false]" }, ], [ { border: 0, backgroundColor: "#eee", text: "border:\n0 (same as false)" }, { border: [false, true, true, false], backgroundColor: "#ddd", text: "border:\n[false, true, true, false]" }, ], [ { border: 0, backgroundColor: "#eee", text: "border:\n0 (same as false)" }, { border: [false, true, true, false], backgroundColor: "#ddd", text: "border:\n[false, true, true, false]" }, ], [ { border: 0, backgroundColor: "#eee", text: "border:\n0 (same as false)" }, { border: [false, true, true, false], backgroundColor: "#ddd", text: "border:\n[false, true, true, false]" }, ], [ { border: 0, backgroundColor: "#eee", text: "border:\n0 (same as false)" }, { border: [false, true, true, false], backgroundColor: "#ddd", text: "border:\n[false, true, true, false]" }, ], [ { border: 0, backgroundColor: "#eee", text: "border:\n0 (same as false)" }, { border: [false, true, true, false], backgroundColor: "#ddd", text: "border:\n[false, true, true, false]" }, ], [ { border: 0, backgroundColor: "#eee", text: "border:\n0 (same as false)" }, { border: [false, true, true, false], backgroundColor: "#ddd", text: "border:\n[false, true, true, false]" }, ], ], }) // finalize the PDF and end the stream doc.end(); The Result:

