我在下面有一个示例,它生成一个有十行的表,最后一行占两行。文档高度比正确适合整个表格所需的高度小两点。正如预期的那样,第一页的最后一行包含单词“Two”,“Lines”部分在另一页上继续。但是,生成的 PDF 会扩展最后一行以适应整个文档,不包括页边距填充,而不是使用最后一行中文本的高度来确定它应该有多高。请注意,我table.setExtendLastRow(false, false)
用来保证表不应该被扩展,但最后一行无论如何都会被扩展。任何想法如何阻止最后一行被扩展?
FileOutputStream out = new FileOutputStream(new File("table.pdf"));
Document document = new Document(new Rectangle(612, 242));
PdfWriter.getInstance(document, out);
document.open();
PdfPTable table = new PdfPTable(1);
table.setWidthPercentage(100);
table.setSplitLate(false);
table.setSplitRows(true);
table.setExtendLastRow(false, false);
for (int i = 0; i < 10; i++) {
PdfPCell cell;
if (i == 9) {
cell = new PdfPCell(new Phrase("Two\nLines"));
}
else {
cell = new PdfPCell(new Phrase(Integer.toString(i)));
}
table.addCell(cell);
}
document.add(table);
document.close();
我上传了一张我看到的照片。请注意,单词“Two”下的间距与行中所有其他数字下的间距不同。它似乎延伸到页边距的底部。