3

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

---------------
|  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);

绘制对面的表格(左侧的行跨单元格)工作得很好。

我在这里注意到了一个类似的问题,但是上下文不同(我不是在开发国际应用程序),所以我想我可以再次改写这个问题。

4

2 回答 2

4

表格总是从左到右、从上到下绘制的,所以你需要添加A, thenC和 finally 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,然后创建了一个新行并向其中添加了一个单元格,因为它是一个寡妇,所以被修剪掉了。

于 2012-04-23T14:11:45.863 回答
3

您应该使用嵌套表:

PdfPTable inner = new PdfPTable(1);
inner.addCell("A");
inner.addCell("B");

PdfPTable outer = new PdfPTAble(2);
outer.addCell(inner);
outer.addCell("C");
于 2012-04-23T09:18:59.503 回答