如何重置iText中的段落

时间:2012-12-02 19:42:58

标签: java pdf itext

我正在使用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 =新段落仍然没有?任何想法?

谢谢!

2 个答案:

答案 0 :(得分:3)

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

table.flushContent(); 

答案 1 :(得分:1)

尝试类似here提及的内容:

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);