0

我正在使用iText在 java 中创建 pdf 一切似乎都按照我的想法工作,除了当我使用循环时,我正在使用的段落似乎包含我存储在其中的所有数据。更清楚一点,这就是我想要做的:

PdfPTable table = new PdfPTable();


for(int k=0; k < 3; k++){

Paragraph leftPar = new Paragraph();

leftPar.add(new Paragraph("\n List Object " + k, topicFont));

table_cell = new PdfPCell(leftPar)
table.addCell(table_cell);    
}

我想要的表的输出是:

List Object 0
-------------
List Object 1
-------------
List Object 2

但我得到的输出是:

List Object 0
-------------
List Object 0
List Object 1
-------------
List Object 0
List Object 1
List Object 2
-------------

我必须将信息放在不同的单元格中,所以我的问题是我认为当我声明 leftpar = new 段落时,它会创建它的一个新实例,但它似乎保留了我添加的其他内容。我什至试过 leftPar = null; 然后leftpar =新段落,仍然没有?有任何想法吗?

谢谢!

4

2 回答 2

4

答案是表格本身保留了所有其他信息。所以我不得不使用方法 flushContent(); 在循环结束时,将表格添加到文档后。

table.flushContent(); 
于 2012-12-03T17:55:02.657 回答
1

尝试类似这里提到的东西:

Paragraph p = new Paragraph("This is a paragraph",
               FontFactory.getFont(FontFactory.HELVETICA, 18, Font.BOLDITALIC, new Color(0, 0, 255)));

在你的情况下,也许这会做:

Paragraph leftPar = new Paragraph("\n List Object " + k, topicFont);
于 2012-12-02T19:46:03.887 回答