我已经构建了一个简单的片段,其中包含一个用于填充表格的循环。将其直接粘贴到pdfmake 操场上,以便查看它的实际效果。
问候!
var client_data, dataTable, i, item, len, rows;
client_data = [
{
prop01: 'row01.prop01',
prop02: 'row01.prop02',
prop03: 'row01.prop03',
prop04: 'row01.prop04',
prop05: 'row01.prop05',
prop06: 'row01.prop06'
}, {
prop01: 'row02.prop01',
prop02: 'row02.prop02',
prop03: 'row02.prop03',
prop04: 'row02.prop04',
prop05: 'row02.prop05',
prop06: 'row02.prop06'
}, {
prop01: 'row03.prop01',
prop02: 'row03.prop02',
prop03: 'row03.prop03',
prop04: 'row03.prop04',
prop05: 'row03.prop05',
prop06: 'row03.prop06'
}
];
dataTable = {
style: 'table',
table: {
widths: ['30%', '10%', '15%', '15%', '15%', '15%'],
headerRows: 1,
body: [
[
{
text: 'No1',
style: 'tableHeader'
}, {
text: 'No2',
style: 'tableHeader'
}, {
text: 'No3',
style: 'tableHeader'
}, {
text: 'No4',
style: 'tableHeader'
}, {
text: 'No5',
style: 'tableHeader'
}, {
text: 'No6',
style: 'tableHeader'
}
]
]
},
layout: {
hLineWidth: function(i, node) {
if (i === 0 || i === node.table.body.length) {
return 0;
} else if (i === node.table.headerRows) {
return 2;
} else {
return 1;
}
},
vLineWidth: function(i) {
return 0;
},
hLineColor: function(i) {
if (i === 1) {
return '#2361AE';
} else {
return '#84a9d6';
}
},
paddingLeft: function(i) {
if (i === 0) {
return 0;
} else {
return 8;
}
},
paddingRight: function(i, node) {
if (i === node.table.widths.length - 1) {
return 0;
} else {
return 8;
}
}
}
};
rows = dataTable.table.body;
i = 0;
len = client_data.length;
while (i < len) {
item = client_data[i];
rows.push([
item.prop01, {
text: item.prop02,
alignment: 'right'
}, {
text: item.prop03,
alignment: 'right'
}, {
text: item.prop04,
alignment: 'right'
}, {
text: item.prop05,
alignment: 'right'
}, {
text: item.prop06,
alignment: 'center'
}
]);
i++;
}
var dd = {
content: [],
styles: {
table: {
margin: [0, 5, 0, 15]
},
tableHeader: {
bold: true,
fontSize: 10,
color: '#2361AE'
}
},
defaultStyle: {
// alignment: 'justify'
}
}
dd.content.push(dataTable)