node.js - 使用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'
}
);
我已经尝试了很多方法来解决这个问题,我很确定我使用的代码是正确的。但我不知道我哪里出错了。
请帮我解决这个错误提前谢谢
解决方案
遇到同样的问题。对我来说,问题是您必须至少添加一页,否则会引发此错误。
推荐阅读
- c# - 如何在 Serilog 中自定义解构类型的格式
- laravel - 我可以在 Laravel 8 中设置视图数据而不返回视图吗?
- google-api - 如何解决 YouTube Data API 将我的视频设置为私有的问题
- javascript - 如何从 2 个数组中创建一个对象数组
- javascript - 滚动时隐藏标题,不滚动时显示标题 React-Native
- java - 如何修复 Launcher4j – 此应用程序需要 Java 运行时环境 1.6.0 错误?
- java - PowerMock verifyNew 失败 - 与此模拟没有交互
- typescript - 将 nuxt + ts 与 koa 一起使用并运行“dev” commond 时,控制台告诉我在使用 typescript 语法的 Vue 文件中编译错误
- python - 获取文件”
",第 991 行,在 spark-submit 的 _find_and_load 中 - javascript - 如何在浏览器中使用带有 JavaScript 的 Flatbuffers?