我正在尝试使用PdfPTable生成iText PDF报告。表格行有问题。我不想在两个页面之间有分隔行,所以我设置了一个表。setSplitRows(false);但是我表中的一行已被删除(或隐藏)!我不知道为什么
我怀疑可能存在与table.setHeaderRows方法相关的原因,因为我想在每个页面上重复标题。当我设置setSplitRows(true)时,我的所有行都是可见的,但是如果有一行包含两行描述,则会在两页之间进行剪切。有什么建议吗?

PdfPTable table = new PdfPTable(2);
table.setHeaderRows(1);
table.setSplitRows(false);
table.addCell(new Phrase("HEADER"));
table.addCell(new Phrase("HEADER2"));
table.addCell(new Phrase("Row1-a"));
table.addCell(new Phrase("Row1-b"));
...(many rows here)...
table.addCell(new Phrase("RowN-a")); <--last row on first page (disapeared)
table.addCell(new Phrase("RowN-b")); <--last row on first page (disapeared)
table.addCell(new Phrase("RowN+1-a")); <--first row on second page
table.addCell(new Phrase("RowN+1-b")); <--first row on second page
pdfDoc.add(table);


如果使用table.setSplitRows(true);,则标记为“第一页的最后一行”的行将分为两页。如果table.setSplitRows(false);然后此行将被删除!这只是两行的小行。删除此行的原因是什么?!

最佳答案

事实证明,此行为是iText https://livebook.manning.com/book/itext-in-action-second-edition/chapter-4/157所意图的
有信息:

java - iText-setSplitRows问题-LMLPHP

因此,我不得不将内部表放在每个单元格中,并防止该表被拆分。外部表已设置为setSplitRow(true)。这是我的解决方法。笨重,但是行得通。

07-28 00:10