iTextSharp и перемещение некоторых данных на следующую страницу - PullRequest
3 голосов
/ 12 октября 2010

Я создаю счет, используя iTextSharp.Это выглядит хорошо, но иногда, когда количество счетов-фактур больше в кол-во, итоговая часть (которая отображает промежуточные итоги, налоги, скидки, итоговую сумму и т. Д.) Разделяется.Некоторые отображаются на текущей странице, а некоторые переходят на следующую страницу.Я думал переместить всю итоговую часть на следующую страницу, если текущей высоты слева недостаточно для этого.

Однако, чтобы сделать это, мне нужно знать, сколько осталось высоты страницы (после моей текущей страницырендеринг контента).Интересно, кто-нибудь знает, как рассчитать текущую левую высоту страницы?ИЛИ если в pdfPTable есть свойство, которое может заставить таблицу печатать себя целиком и не позволять ей разбиваться на несколько страниц!Я думаю, если второй вариант доступен, это будет легко.

Итак, мне нужно знать, можно ли рассчитать оставшуюся высоту страницы, а также можно ли заставить таблицу НЕ разделяться на несколько страниц.

спасибо.Sameers

Ответы [ 3 ]

11 голосов
/ 18 октября 2011

Вы можете установить SplitLate на false, чтобы избежать автоматического разрыва страницы в данных ячейки, превышающей предел.

......
table.addCell(cellData);

table.SplitLate = false;
......
1 голос
/ 28 декабря 2010

Я предлагаю вам использовать вложенную таблицу для вашего сводного раздела.Я не верю, что iText разделит данную ячейку на границе страницы, поэтому все в этой ячейке (даже если это вложенная таблица с собственными ячейками) останется на той же странице.диапазон строк ячейки, поэтому он занимает целый ряд самостоятельно.

Я не уверен, но я бы поставил на него пиво.

0 голосов
/ 14 октября 2010

Какой объект вы используете, чтобы добавить свои данные в PDF? MultiColumnText, Абзац, Фраза?

Вы должны иметь возможность использовать свойство Document.PageSize.Height для возврата высоты страницы.

Затем используйте PDFPTable.Height, чтобы возвратить высоту вашего стола.

Так что просто используйте логику Document.PageSize.Height - table.Height, и у вас останется доступное пространство по оси Y.

Объект PDFPTable имеет свойства с именами SplitLate и SplitRows. Я считаю, что вы можете использовать эти свойства, чтобы попробовать и сохранить таблицу на одной странице.

...