Java iText PdfPTable 大于 6 列

Java iText PdfPTable larger than 6 columns

我想修改一个由 iText 生成的 table 以增加一列。

但是当我改变构造函数参数时:

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 中不存在 table。这是为什么?我猜它不适合文档宽度?

假设这有效(我知道它确实有效):

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 列的 table。

如果您像这样更改此代码段,将不会添加 table:

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,因为其中只有一行,不呈现不完整的行。

你有两个选择,要么添加:

table.completeRow();

或者您添加:

table.addCell("7");

就在将 table 添加到 document 之前。

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

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