java iText 7防止分页符拆分单元格
我正在尝试生成一个包含形状单元格的PDF表格
我重写CellRenderer
类,并在新类中DrawableCellRenderer#draw
绘制形状
有时,当表格需要拆分,而单元格有行跨度时,我希望阻止它拆分,并从下一页开始
我试着setKeepTogether(true)
但没有成功。嵌套表也不起作用
以下是我使用的代码:
public void test2() {
try {
pdfDocument = new PdfDocument(new PdfWriter(filePath));
document = new Document(pdfDocument);
Table masterTable = new Table(2).setExtendBottomRowOnSplit(true);
masterTable.addHeaderCell(new Cell().add(new Paragraph("icon")))
.addHeaderCell(new Cell().add(new Paragraph("i")));
int rowSpan = 15;
for(int i = 0; i < 50; i++) {
Cell cell = new Cell(rowSpan, 1);
cell.setNextRenderer(new DrawableCellRenderer(cell, SOME_SHAPE));
cell.setKeepTogether(true);
masterTable.addCell(cell);
for(int j = 0; j < rowSpan; j++) {
cell = new Cell();
cell.add(new Paragraph(i + ", " + j));
masterTable.addCell(cell);
}
}
document.add(masterTable);
} catch (FileNotFoundException e) {
ErrorMessage.outPrintln(ErrorMessage.DEBUG,
e.getMessage());
} finally {
pdfDocument.close();
}
}
# 1 楼答案
这段代码应该或多或少达到你想要的效果。不过,您需要设置固定的列宽
结果如下:
不过,有一个伪像是两个连续的边界没有被折叠: