iTextSharp и перемещение некоторых данных на следующую страницу
Я создаю счет, используя iTextSharp. Это выглядит красиво, но иногда, когда количество счетов-фактур больше в кол-во, итоговая часть (которая отображает промежуточные итоги, налоги, скидки, итоговую сумму и т. Д.) Разделяется. Некоторые отображаются на текущей странице, а некоторые переходят на следующую страницу. Я думал переместить всю итоговую часть на следующую страницу, если текущей высоты слева не достаточно для этого.
Однако, чтобы сделать это, мне нужно знать, сколько осталось высоты страницы (после рендеринга содержимого моей текущей страницы). Интересно, кто-нибудь знает, как рассчитать текущую левую высоту страницы? ИЛИ если в pdfPTable есть свойство, которое может заставить таблицу печатать себя целиком и не позволять ей разбиваться на несколько страниц! Я думаю, если второй вариант доступен, это будет легко.
Итак, мне нужно знать, возможно ли рассчитать оставшуюся высоту страницы, а также можно ли заставить таблицу НЕ разделяться на несколько страниц.
благодарю вас. Sameers
3 ответа
Вы можете установить SplitLate
в false
во избежание автоматического разрыва страницы в ячейке данные превышают лимит.
......
table.addCell(cellData);
table.SplitLate = false;
......
Я предлагаю вам использовать вложенную таблицу для вашего резюме раздела. Я не верю, что iText будет разбивать данную ячейку на границе страницы, поэтому все в этой ячейке (даже если это вложенная таблица с собственными ячейками) останется на той же странице.
Используйте диапазон строк ячейки таблицы, чтобы он занимал всю строку самостоятельно.
Я не уверен, но я поставил бы пиво на это.
Какой объект вы используете, чтобы добавить свои данные в PDF? MultiColumnText, Абзац, Фраза?
Вы должны иметь возможность использовать свойство Document.PageSize.Height для возврата высоты страницы.
Затем используйте PDFPTable.Height, чтобы вернуть высоту вашего стола.
Так что просто используйте логику Document.PageSize.Height - table.Height, и у вас будет доступное оставшееся пространство по оси Y.
Объект PDFPTable имеет свойства с именами SplitLate и SplitRows. Я считаю, что вы можете использовать эти свойства, чтобы попытаться сохранить таблицу на одной странице.