我正在使用PDFmake创建pdf文件,我想在表中添加动态数据,但正文显示为空。
当我打印[0]时,此选项有效,但我有很多动态数据
getData(installation, request) {
const phases = {
layout: {
hLineWidth: function(i, node) {
return 0.45;
},
vLineWidth: function(i, node) {
return 0.45;
}
},
table: {
dontBreakRows: true,
widths: ["30%", "10%", "60%"],
body: [
[
{
text: installation.phases[0].text,
style: "cell"
},
{ text: installation.phases[0].status},
{
text: this.getFeedback(installation.phases[0]),
style: "commentCell"
}
],
]
}
};
console.log(phases);
return phases;
}
但是如果我使用它,它将创建表主体为空。
getData(installation, request) {
installation.phase.forEach(value =>{
const phases = {
layout: {
hLineWidth: function(i, node) {
return 0.45;
},
vLineWidth: function(i, node) {
return 0.45;
}
},
table: {
dontBreakRows: true,
widths: ["30%", "10%", "60%"],
body: [
[
{
text: data.text,
style: "cell"
},
{ text: data.status},
{
text: this.getFeedback(data),
style: "commentCell"
}
],
]
}
};
console.log(phases);
return phases;
});
}
这可能是什么问题?我已经尝试过,但是找不到解决方法
答案 0 :(得分:0)
我不确定这是否是您的目标。
我已经重写了您的代码,并为PDF创建了JSON结构(常量阶段),然后使用由行组成的JSON数组动态填充table.body。我没有尝试运行它,因此可能存在一些编译错误。希望这会有所帮助!
getData(installation, request) {
const phases = {
layout: {
hLineWidth: function(i, node) {
return 0.45;
},
vLineWidth: function(i, node) {
return 0.45;
}
},
table: {
dontBreakRows: true,
widths: ["30%", "10%", "60%"],
body: []
}
}
installation.phases.forEach(value => {
phases.table.body.push([
{ text: value.text, style: 'cell' },
{ text: value.status, },
{ text: this.getFeedback(value), style: 'commentCell' }
])
})
console.log(phases)
return phases
}