Взгляните на пример Разделение:
Paragraph p = new Paragraph("Test");
PdfPTable table = new PdfPTable(2);
for (int i = 1; i < 6; i++) {
table.addCell("key " + i);
table.addCell("value " + i);
}
for (int i = 0; i < 40; i++) {
document.add(p);
}
document.add(table);
У нас есть таблица с 5 строками, и в этом случае мы добавляем несколько абзацев, чтобы таблица была добавлена в конец страницы.
По умолчанию iText попытается не разбивать строки, но если вся таблица не помещается, он перенаправит строки, которые не помещаются на следующую страницу:
![введите здесь описание изображения](https://i.stack.imgur.com/0r3Wn.png)
Вы хотите избежать такого поведения: вы не хотите, чтобы таблица разделялась.
Зная, что iText попытается сохранить полные строки нетронутыми, вы можете обойти эту проблему, вложив таблицу, которую вы не хотите разбивать, в другую таблицу:
PdfPTable nesting = new PdfPTable(1);
PdfPCell cell = new PdfPCell(table);
cell.setBorder(PdfPCell.NO_BORDER);
nesting.addCell(cell);
document.add(nesting);
Теперь вы получаете этот результат:
![введите здесь описание изображения](https://i.stack.imgur.com/8o4ib.png)
На предыдущей странице было достаточно места для рендеринга пары строк, но поскольку мы поместили полную таблицу в строку с одним столбцом, iText перенаправит всю таблицу на следующую страницу.
person
Bruno Lowagie
schedule
22.10.2015