【问题标题】:pdfmake: How to set the height for all rows?pdfmake:如何设置所有行的高度?
【发布时间】:2023-01-12 04:13:03
【问题描述】:
我想为表格中的所有行设置行高。我目前正在这样指定我的样式:
table: {
widths: ['33%', '34%', '33%'],
heights: [40, 40],
headerRows: 1,
如果我有已知数量的行,那效果很好,在这种情况下,第一行和表头的高度为 40。下面的所有内容都会回落到默认高度,因为我没有指定任何不同的东西。
但是,如果我有一个包含很多行的表,或者在我的例子中是一个行数是动态的表,那么将每个高度写入对象是一项繁琐的任务。
有没有更好的方法将样式应用于所有行?
【问题讨论】:
标签:
javascript
pdf-generation
javascript-objects
pdfmake
【解决方案1】:
您可以通过为“高度”分配一个数字而不是数组来为所有行设置相同的高度:
table: {
widths: ['33%', '34%', '33%'],
heights: 40,
headerRows: 1,
body: [...]
}
或者,您可以在 JavaScript 中动态生成一个长度合适的数组。这比较麻烦,但它允许您以编程方式为不同的行指定不同的高度。
查看 playground here 以获取更多示例。
【解决方案2】:
您可以在顶部和底部设置填充。它非常方便,您还可以为特定行设置填充。
table: {
widths: ['33%', '34%', '33%'],
headerRows: 1,
body: [...]
},
layout: {
paddingTop: function (i, node) {
return 5;
//return (i === node.table.widths.length - 1) ? 5 : 5;
},
paddingBottom: function (i, node) {
return 5;
//return (i === node.table.widths.length - 1) ? 5 : 5;
}
}