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 に答える