【发布时间】:2015-04-27 10:53:57
【问题描述】:
在页面上我有表格,在页面末尾我有一个段落,如果行包含少量行,段落必须仍然留在页面末尾,但是如果行太多并且表格超过一个页段落必须在表格结束之后。起初它对我来说看起来很容易,我只是为包含表格的 PdfPCell 设置了最小高度,但后来我发现页面是否在页面上拆分最小高度适用于表格的每个部分,因此段落不在表格下方第二页。有什么解决办法吗?
【问题讨论】:
标签: java itext pdf-generation tabular
在页面上我有表格,在页面末尾我有一个段落,如果行包含少量行,段落必须仍然留在页面末尾,但是如果行太多并且表格超过一个页段落必须在表格结束之后。起初它对我来说看起来很容易,我只是为包含表格的 PdfPCell 设置了最小高度,但后来我发现页面是否在页面上拆分最小高度适用于表格的每个部分,因此段落不在表格下方第二页。有什么解决办法吗?
【问题讨论】:
标签: java itext pdf-generation tabular
我发现这个问题的解决方案不是很好,我在表格中添加了一列,它的宽度太小并且对用户不可见,在这一列中我添加了两行的表格,对于第一行,我设置了我需要的最小高度,这里是创建这个附加列的代码
private PdfPCell createMinHeight(float minH) {
PdfPCell cell = new PdfPCell();
PdfPTable table = new PdfPTable(1);
cell.setBorder(Rectangle.NO_BORDER);
table.getDefaultCell().setBorder(Rectangle.NO_BORDER);
table.setHeaderRows(0);
PdfPCell firstRow = new PdfPCell();
firstRow.setBorder(Rectangle.NO_BORDER);
firstRow.setMinimumHeight(minH);
firstRow.setPadding(0);
table.addCell(firstRow);
table.addCell("");
cell.setPadding(0);
cell.addElement(table);
return cell;
}
【讨论】:
如果我理解正确,您不希望段落拆分吗?您可以将setKeepTogether(boolean); 用于您需要的元素:
paragraph.setKeepTogether(true);
或
table.setKeepTogether(true);
【讨论】: