0

我在下面有一个示例,它生成一个有十行的表,最后一行占两行。文档高度比正确适合整个表格所需的高度小两点。正如预期的那样,第一页的最后一行包含单词“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”下的间距与行中所有其他数字下的间距不同。它似乎延伸到页边距的底部。

第一页最后一行的图像未在字体底部绘制

4

1 回答 1

0

这是预期的行为,iText 目前不支持这种极端情况。

于 2014-07-30T16:44:02.493 回答