我希望修改一个由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中不存在该表。为什么会这样呢?我猜它不符合文件的宽度?
发布于 2015-04-20 19:44:10
假设这起作用(我知道它确实有效):
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示例和table.pdf。
https://stackoverflow.com/questions/29756472
复制相似问题