我需要画一张这样的桌子。
---------------
| A | C |
|------| |
| B | |
---------------
以下代码不起作用。它创建一个包含单行的表,而不绘制'C'单元格:
PdfPTable table = new PdfPTable(2);
table.addCell("A");
table.addCell("B");
PdfPCell cell = new PdfPCell(new Phrase("C"));
cell.setRowspan(2);
table.addCell(cell);
绘制相反的表格(左边的行挖掘单元格)可以正常工作。
我注意到了一个类似的问题here,但背景不同(我没有在国际应用程序上工作)所以我想我可以再次重新提出这个问题。
答案 0 :(得分:4)
表格始终从左到右,从上到下绘制,因此您需要先添加A
,然后添加C
,然后再添加B
。
PdfPTable table = new PdfPTable(2);
table.addCell("A");
PdfPCell cell = new PdfPCell(new Phrase("C"));
cell.setRowspan(2);
table.addCell(cell);
table.addCell("B");
iText要求考虑表中的所有单元格。如果缺少任何单元格,则会跳过整行。您的原始代码将A
添加到R1C1,然后B
添加到R1C2,然后创建了一个新行并添加了一个单元格,因为它是一个寡妇被删除了。
答案 1 :(得分:3)
您应该使用嵌套表:
PdfPTable inner = new PdfPTable(1);
inner.addCell("A");
inner.addCell("B");
PdfPTable outer = new PdfPTAble(2);
outer.addCell(inner);
outer.addCell("C");