Java iText PdfPTable大于6列

时间:2015-04-20 19:15:15

标签: java pdf itext calculated-columns tabular

我想修改由iText生成的表,以便再添加一列。

但是当我从:

更改构造函数参数时
PdfPTable table = new PdfPTable(6);

为:

PdfPTable table = new PdfPTable(7);

并向其添加内容,就像我对其他列一样:

cell1 = new PdfPCell(new Phrase(name));
    cell1.setHorizontalAlignment(Element.ALIGN_CENTER);
    table.addCell(cell1);

表格不存在于生成的PDF中。这是为什么?我猜它不符合文档宽度?

1 个答案:

答案 0 :(得分:1)

假设这有效(它确实有效):

PdfPTable table = new PdfPTable(6);
table.addCell("1");
table.addCell("2");
table.addCell("3");
table.addCell("4");
table.addCell("5");
table.addCell("6");
document.add(table);

在这种情况下,将添加一个包含单行和6列的表。

如果您更改此代码段,则不会添加任何表格:

PdfPTable table = new PdfPTable(7);
table.addCell("1");
table.addCell("2");
table.addCell("3");
table.addCell("4");
table.addCell("5");
table.addCell("6");
document.add(table);

此表格不会被添加,因为其中只有一行,并且不会呈现不完整的行。

您有两个选项,要么添加:

table.completeRow();

或者你添加:

table.addCell("7");

在将table添加到document之前。

没有理由可以添加包含6列的表,但不能添加包含7列的表。宽度不是问题:如果您没有为列定义绝对宽度,那么iText将自动计算每列的精确宽度。

我不知道我是否有一个包含7列的表的文档,但我确实有一个包含8个表的示例:请参阅SimpleTable示例和simple_table.pdf