Динамическое получение высоты стола в iText
Есть ли способ получить высоту таблицы перед ее добавлением в документ?
На первый взгляд я предположил, что количества строк в таблице достаточно для вычисления высоты, так как я знаю размер шрифта. Однако некоторые строки нарушают это правило. Например, одна ячейка может хранить абзац, имеющий более одной строки. Следовательно, мне нужно знать сумму высот каждого ряда.
2 ответа
Да, ответ не был сложным.
Чтобы получить высоту таблицы, нужно сначала установить ширину таблицы. Другими словами,
table.setTotalWidth((PageSize.A4.getWidth() - document.leftMargin()
- document.rightMargin()) * table.getWidthPercentage() / 100);
System.out.println(table.calculateHeights());
действительно дает высоту стола.
Если вы хотите получить высоту таблицы динамически, вы можете сделать это только после того, как добавите в нее все содержимое. Чтобы сделать это, вы должны сначала установить его свойство фиксированной ширины и свойство заблокированной ширины.
например
table.setTotalWidth(555f);
table.setLockedWidth(true);
после этого вы можете получить высоту стола, используя его table.getTotalHeight()
метод