2017-03-28 3 views
1

iText Table.getNumberofRows() fn은 테이블의 행 수를 반환하며 일반적으로 예상대로 작동합니다. 마지막 행에 셀 수가 부분적으로 포함되어있는 경우 행으로 간주됩니다. 이는 의미가 있습니다. 그러나 그것이 세포를 포함하지 않으면, 나는 그것이 행이라고 생각하지 않는다. 그래서 그것은 중요하지 않다. 불행하게도 그렇습니다. 예를 들어, 테이블이 처음 만들어지면 getNumRows()는 0이 아니라 1을 반환합니다. 이것은 생성자에서 (비공식적으로) 빈 행을 준비하는 init fn을 호출하기 때문입니다.Table.getNumberOfRows()의 동작

이제 테이블의 셀 전체 행에서 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

안녕하세요, 귀하의 제안에 감사드립니다. 이것은 합리적인 것처럼 보이며 고려 될 것입니다. –

+0

고마워, 알렉세이. 첫 번째 행의 존재 여부를 확인하기 위해 Table.getCell (0,0)을 사용해 보았습니다. 그러나 새 테이블에서 예외가 throw됩니다 (즉, null이 반환됩니다). – Vernon

답변

1

버논.

Table.isEmpty()를 사용하여 Table에 자식 (셀)이 있는지 여부를 확인할 수 있다고 생각합니다. 결과가 true이면 행이 실제로 존재합니다.

하지만 다행히도 (제안 해 주셔서 감사합니다) 문제가 해결되었습니다 (7.0.3-SNAPSHOT 참조). 이제 표에는 셀을 추가 할 때까지 빈 행 목록이 있습니다. 그래서 table.getNumberOfRows()의 결과는 정확할 것이다.

+0

그것은 매우 빨랐다! 많은 감사합니다. API docn에서 isEmpty()를 볼 수 없으므로 그것에 대해 몰랐습니다. – Vernon