我想修改由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中。这是为什么?我猜它不符合文档宽度?
答案 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