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