首页 > 解决方案 > 使用pdfkit时如何解决节点js中的错误“Cannot read property 'write' of null”

问题描述

当我在下面使用此代码时出现上述错误。

 var pdf = new PDFDocument({
        autoFirstPage: false
    });
    pdf.fontSize(10);


var table = new PdfTable(pdf, {
        bottomMargin: 30,
    });
for (var l = 0; l < attendance.length; l++) {

        pdf 
        .text("Employee Name : "+attendance[l].employee_name, 
            {
                width: 100,
                height: 50,
                align: 'left',
            }
        );




        pdf
        .fontSize(12)
        .text("Employee Role", {
            width: 100,
            height: 50,
            align: 'right'
        }
        );

        pdf.moveDown();

        table.addPlugin(new (require('voilab-pdf-table/plugins/fitcolumn'))({
            column: 'purpose',
            align: 'left'
        }))
            .setColumnsDefaults({
                headerBorder: 'B',
                align: 'center',
                padding: [8, 5, 5, 5],

            })
            .addColumns([
                {
                    id: 'sno',
                    header: '#',
                    width: 40
                },
                {
                    id: 'DATE',
                    header: 'DATE',
                    width: 70
                },
                {
                    id: 'startTime',
                    header: 'Start Time',
                    width: 70
                },
                {
                    id: 'endTime',
                    header: 'End Time',
                    width: 70,
                },
                {
                    id: 'workTime',
                    header: 'Work Time',
                    width: 100
                },
                {
                    id: 'breakTime',
                    header: 'Break Time',
                    width: 100
                },
                {
                    id: 'payable',
                    header: 'Payable',
                    width: 90,
                }
            ])
            .onPageAdded(function (tb) {
                tb.addHeader();
            });
            pdf.moveDown();
        pdf.addPage();

当我执行代码时出现以下错误

TypeError: Cannot read property 'write' of null
    at PDFDocument.addContent (A:\executeapp\ppm-backend\node_modules\pdfkit\js\pdfkit.js:4365:15)
    at PDFDocument.save (A:\executeapp\ppm-backend\node_modules\pdfkit\js\pdfkit.js:1702:17)
    at PDFDocument._fragment (A:\executeapp\ppm-backend\node_modules\pdfkit\js\pdfkit.js:3422:10)
    at PDFDocument._line (A:\executeapp\ppm-backend\node_modules\pdfkit\js\pdfkit.js:3314:10)
    at LineWrapper.emit (events.js:203:15)
    at LineWrapper.EventEmitter.emit (domain.js:448:20)
    at emitLine (A:\executeapp\ppm-backend\node_modules\pdfkit\js\pdfkit.js:2937:12)
    at eachWord (A:\executeapp\ppm-backend\node_modules\pdfkit\js\pdfkit.js:2991:9)
    at LineWrapper.eachWord (A:\executeapp\ppm-backend\node_modules\pdfkit\js\pdfkit.js:2893:26)
    at LineWrapper.wrap (A:\executeapp\ppm-backend\node_modules\pdfkit\js\pdfkit.js:2943:10)
    at PDFDocument._text (A:\executeapp\ppm-backend\node_modules\pdfkit\js\pdfkit.js:3128:15)
    at PDFDocument.text (A:\executeapp\ppm-backend\node_modules\pdfkit\js\pdfkit.js:3141:17)
    at AttendancePdf (A:\executeapp\ppm-backend\utility\recurringTask.js:429:10)
    at A:\executeapp\ppm-backend\utility\recurringTask.js:365:48
    at A:\executeapp\ppm-backend\node_modules\mongoose\lib\model.js:4599:16
    at A:\executeapp\ppm-backend\node_modules\mongoose\lib\query.js:4351:12
    at process.nextTick (A:\executeapp\ppm-backend\node_modules\mongoose\lib\query.js:2849:28)
    at process._tickCallback (internal/process/next_tick.js:61:11)
Emitted 'error' event at:

错误发生在代码块中

     pdf
    .fontSize(12)
    .text("Employee Role", {
        width: 100,
        height: 50,
        align: 'right'
    }
    );

我已经尝试了很多方法来解决这个问题,我很确定我使用的代码是正确的。但我不知道我哪里出错了。

请帮我解决这个错误提前谢谢

标签: node.jspdfpdfkit

解决方案


遇到同样的问题。对我来说,问题是您必须至少添加一页,否则会引发此错误。


推荐阅读