使用日历项目并使用iText生成pdf以打印约会。我可以绘制一个带有colspan的单元格和一个带有rowspan的单元格,但我无法将它组合在一起。表的宽度为4个单元格。我希望实现这样的目标:
(A)(B)(C)(C)
(d)(E)(C)(C)
所以(1,1),(1,2)和(2,1)(2,2)是常规细胞。但是(1,3)中应该有一个细胞覆盖(1,3)(1,4)(2,3)和(2,4),因此它具有2的spspan和2的行距。
当前代码:
PdfPTable table = new PdfPTable(4);
PdfPCell cell = new PdfPCell(new Phrase(“1,1”));
table.addCell(细胞);
cell = new PdfPCell(new Phrase(“1,2”));
table.addCell(细胞);
PdfPCell cell23 = new PdfPCell(new Phrase(“multi 1,3 and 1,4”));
cell23.setColspan(2);
cell23.setRowspan(2);
table.addCell(cell23);
cell = new PdfPCell(new Phrase(“2,1”));
table.addCell(细胞);
cell = new PdfPCell(new Phrase(“2,2”));
table.addCell(细胞);
// 2,3和2,4应该被填充,因为1,3有行2和colspan 2。
// table.completeRow(); //无效
然而,这会产生错误:
ExceptionConverter:java.io.IOException:文档没有页面。
如果我没有开始创建第二行,它只是绘好(1行,并且(1,3)上的单元格具有2的colspan。因为没有第二行,所以rowspan(2)没有影响。 任何帮助表示赞赏。感谢
答案 0 :(得分:2)
document.add(table);
您的代码段中的任何位置。
我已将您的代码复制/粘贴到完整示例中,我在此处发布了完整的示例:ColspanRowspan。生成的PDF看起来像this:
这似乎是理想的行为。我只能想到两个不同之处:(1)你忘了添加实际的表格(这是我最初的答案),或者(2)你正在使用强大的旧版本iText,其中rowspan不是'完全支持。