如何解决pdfmake中分页符时动态子标题的问题
我正在使用pdfmake
在Angular中渲染数据。每页有五个标题:
- 我有一个房客
- 在租户内部,我有活动
- 在我有资料的活动中
我需要这样渲染 enter image description here
4 3 4 5
页面中断时在这里
它将采用第二个PDF中的第一个活动值。我需要在页面中断处呈现第二个活动。
generatePdf() {
const documentDefinition = {
pageSize: 'A4',pageOrientation: 'landscape',content: [
this.generateReport04Structure()
]
generateReport04Structure() {
const retunData = [];
this.reports.report04.forEach(element => {
const data = [];
data.push(
{
margin: [0,20,0],style: 'tableExample',table: {
headerRows: 5,// pageBreak: 'before',dontBreakRows: true,body: [
[
{text: 'TENANT',style: 'tableHeader',colSpan: 3,border: [false,false,false]},{},{text: 'BUILDING',{text: 'DATE',colSpan: 2,{}
],[
{text: element.tenantName,border: [true,true,true],bold: true,margin: [3,6,10]},{text: element.tenantBuilding,{text: element.inspectionDate,...this.report04ActivityElements(element.activity),],// widths: ['8%','8%','8%'],widths: ['12%','12%','12%'],layout: {
hLineWidth(i,node) {
return (i === 0 || i === node.table.body.length) ? 0.1 : 0.1;
},vLineWidth(i,node) {
return (i === 0 || i === node.table.widths.length) ? 0.1 : 0.1;
},hLineColor(i,node) {
return (i === 0 || i === node.table.body.length) ? 'black' : 'black';
},vLineColor(i,node) {
return (i === 0 || i === node.table.widths.length) ? 'black' : 'black';
},paddingTop(i,node) { return 10; },paddingBottom(i,node) { return 10; }
}
},}
);
retunData.push(data);
});
return retunData;
}
report04ActivityElements(value) {
let activity = [];
value.forEach(element => {
activity.push([
{text: '',false],8,{text: 'ACTIVITY #',{text: 'ACTIVITY TYPE',{text: 'DESCRIPTION',{text: 'PRACTICE',]);
let returnData = [];
returnData.push(
{text: '',{text: element.activityNumber,{text: element.activityType,{text: element.description,{text: element.practice,10] }
);
activity.push(returnData);
if (element.material.length > 0) {
activity.push(...this.report04Material(element.material));
}
});
return activity;
}
report04Material(value) {
let material = [];
material.push([
{text: '',{text: '',{text: 'MATERIAL #',{text: 'MATERIAL NAME',{text: 'QUANTITY',{text: 'CAPACITY',{text: 'SEC/SPILL CON',{text: 'LEAK/STAIN',10]}
]);
value.forEach(element => {
let returnData = [];
returnData.push(
{text: '',{text: element.materialNumber,{text: element.materialName,{text: element.quantity,{text: element.capacity,{text: element.secSpill,{text: element.leakStain,10]}
);
material.push(returnData);
});
return material;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。