gpt4 book ai didi

java - 表格单元格中的大表格调用分页符

转载 作者:行者123 更新时间:2023-12-01 11:55:17 26 4
gpt4 key购买 nike

我有一个带有单列的 PdfPTable。一页可容纳 50 行。如果我向表中添加一些文本数据(例如 300 行),报告工作正常。当我将 PdfPTable 添加到单元格(例如,20 个字符串单元格、PdfPTable(其中包含 20 行或更少)和 270 个字符串单元格)时,所有工作也正常:

/--------
20 string rows
inner table (20 rows)
10 string rows
/-------
...additional rows

但是,当我的内表有更多行时(mainTable[20 字符串行,innerTable[90 字符串行],270 字符串行],报告会中断第一页,并在第二页上开始innerTable 输出。

/---------
20 string rows
whitespace for 30 rows
/---------
inner table (50 rows from 90)
/---------
inner table (40 rows from 90)
..additional data

我需要这个:

/---------
20 string rows
inner table (30 rows from 90)
/---------
inner table (50 rows from 90)
/---------
inner table (10 rows from 80)
..additional data

有人知道解决办法吗?

ps itext 版本 - 2.1.7

最佳答案

请查看 NestedTables2例子。在此示例中,我们告诉 iText,一旦页面无法容纳行,就可以拆分单元格:

enter image description here

这不是默认设置:默认情况下,iText 会尝试通过将行转发到下一页来保持行完整。仅当该行不适合页面时,该行才会被拆分。

更改默认值需要向代码中添加一行。该行称为:table.setSplitLate(false);

这是创建屏幕截图中显示的 PDF 的完整方法:

public void createPdf(String dest) throws IOException, DocumentException {
Document document = new Document();
PdfWriter.getInstance(document, new FileOutputStream(dest));
document.open();
PdfPTable table = new PdfPTable(2);
table.setSplitLate(false);
table.setWidths(new int[]{1, 15});
for (int i = 1; i <= 20; i++) {
table.addCell(String.valueOf(i));
table.addCell("It is not smart to use iText 2.1.7!");
}
PdfPTable innertable = new PdfPTable(2);
innertable.setWidths(new int[]{1, 15});
for (int i = 0; i < 90; i++) {
innertable.addCell(String.valueOf(i + 1));
innertable.addCell("Upgrade if you're a professional developer!");
}
table.addCell("21");
table.addCell(innertable);
for (int i = 22; i <= 40; i++) {
table.addCell(String.valueOf(i));
table.addCell("It is not smart to use iText 2.1.7!");
}
document.add(table);
document.close();
}

请注意,您不应使用 iText 2.1.7。如果你这样做,你可能会与你的雇主、客户、投资者产生问题。请在免费电子书 The Best iText Questions on StackOverflow 的法律部分了解更多相关信息。

关于java - 表格单元格中的大表格调用分页符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28503491/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com