iText Table.getNumberofRows()
fn返回表中的行数,通常按预期工作。如果最后一行只包含部分数量的单元格,它仍然算作一行,这是有道理的。但是,如果它不包含任何单元格,我不认为这是一行,所以它不应该计算。不幸的是。例如,当首次创建表时,getNumRows()返回1而不是0.(这是因为在它的构造函数中它(明智地)调用了一个准备空行的init fn。)
现在,如果向表中添加完整的单元格行,getNumRows()仍然会返回1,因此您无法从有效的单行中分辨出空表。解决方法是在添加每行单元格后调用startNewRow()
,并处理getNumRows()
太大的结果。但是,在7.0.2上,此变通方法已开始生成有关Last row is not completed. Table bottom border may collapse as you do not expect it
的警告消息。这没错,但看起来很糟糕。
您是否可以更新iText以将没有单元格的行视为无行?
答案 0 :(得分:1)
弗农。
我相信你可以使用table.isEmpty()来检查Table是否有一些子(单元格)。如果结果为true,则确实存在该行。
但幸运的是(感谢您的建议)我们已经解决了问题(请参阅7.0.3-SNAPSHOT
)。现在Table将有一个空行列表,直到一个添加一个单元格。所以table.getNumberOfRows()的结果是正确的。