在iText中,如何设置右列表格单元格的行距?

时间:2012-04-20 14:31:21

标签: java itext

我需要画一张这样的桌子。

---------------
|  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,但背景不同(我没有在国际应用程序上工作)所​​以我想我可以再次重新提出这个问题。

2 个答案:

答案 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");