Table.getNumberOfRows()的行为

时间:2017-03-28 16:33:22

标签: itext itext7

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以将没有单元格的行视为无行?

1 个答案:

答案 0 :(得分:1)

弗农。

我相信你可以使用table.isEmpty()来检查Table是否有一些子(单元格)。如果结果为true,则确实存在该行。

但幸运的是(感谢您的建议)我们已经解决了问题(请参阅7.0.3-SNAPSHOT)。现在Table将有一个空行列表,直到一个添加一个单元格。所以table.getNumberOfRows()的结果是正确的。