我正在尝试使用包含形状单元格的表格生成 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();
}
}