2017-08-22 2 views
1

iText PDFを使用して、生成されたPDFに1行のフッターを追加できますが、複数行のフッターを追加する必要があります。iText PDF - 複数行のフッターを追加するには?

Java(\n)の新しい行文字で2つの文字列を連結しようとしましたが、チャンスがありません(コード#1参照)。また、PdfPageEventHelperonEndPageメソッドのfloat x, float yパラメータを使用して複数行のフッターを設定しようとしました。うまく動かなかった(参照コード#2)。ここで

は、私がこれまで試してみましたものです:あなたはColumnText.showTextAligned()を使用している

コード#1

Phrase phrase = new Phrase("line1" + "\n" + "line2", fontNormal10); 
ColumnText.showTextAligned(writer.getDirectContent(), Element.ALIGN_LEFT, phrase, 40, 30, 0); 

コード#2

Phrase phrase = new Phrase("line1", fontNormal10); 
ColumnText.showTextAligned(writer.getDirectContent(), Element.ALIGN_LEFT, phrase, 40, 30, 0); 
Phrase phrase2 = new Phrase("line2", fontNormal10); 
ColumnText.showTextAligned(writer.getDirectContent(), Element.ALIGN_LEFT, phrase2, 40, 0, 0); 

答えて

2

。これは、に1行のテキストを追加するために使用できる方法です。複数行のテキストを追加することは期待できません。

複数の行を追加する場合は、Rectangleを定義する必要があります。この矩形の内側にコンテンツを追加するには、ColumnTextを使用する必要があります。これは(もちろん)公式の文書、特にAbsolute positioning of text (iText 5)セクションで説明されています。How to add text inside a rectangle?

その答えに対するコードはC#コードですが、Javaに変換するのは簡単です:

Rectangle rect = new Rectangle(x1, y1, x2, y2); 
ColumnText ct = new ColumnText(writer.getDirectContent()); 
ct.SetSimpleColumn(rect); 
ct.addElement(new Paragraph("This is the text added in the rectangle")); 
ct.go(); 

の値を定義しx1y1x2、およびすべてのテキストが(収まらないテキストは省略する)の長方形に収まる、それそのような方法でこのような方法でy2ページの下部に配置されます。

関連する問題