我正在 iText 中创建一个表格,其中列出了某个日期的事件。如果某个日期有多个事件,我将日期单元格的 rowspan 属性设置为事件数。我目前为每个事件使用一行,因为我想显示该事件的附加信息并希望保持所有内容对齐。基本上我的表可以是这样的:
Date | Event | Details
--------+-----------+---------------
date 1 | event 1 | details 1
--------+-----------+---------------
date 2 | event 2 1 | more
| | details 2 1
+-----------+---------------
| event 2 2 | details 2 2
--------+-----------+---------------
包含的单元格date 2
的行跨度为 2。
我使用ColumnText.go()
循环添加表。
如果我将表格写入文档并且只剩下足够的空间用于event 2 1
,event 2 2
则转到新页面。如何在添加之前强制创建新页面date 2
?
使用PdfPTable.setSplitLate(true)
似乎不会影响多行单元格。也不会将date 2
单元格的固定高度设置为两行的组合高度。
一种解决方案是对第 2 列和第 3 列使用嵌套表(并将第 2 列和第 3 列视为一列)
另一种在我使用的 iText 版本中无法正常工作的解决方案是
PdfPTable.writeSelectedRows()
仅使用和写入适合页面的(组合)行。问题是,这样行跨度被忽略,Date
单元格看起来只跨越一行。
还有其他方法吗?