2010-12-09 13 views
4

以下はドキュメントに従って動作するはずですが、動作しません。何か不足していますか?コンポジットモードで垂直アライメントが機能しない

PdfPTable rs1 = new PdfPTable(1); 
PdfPCell c = new PdfPCell(); 

Paragraph p = new Paragraph("some text to align"); 

c.AddElement(p); 
c.VerticalAlignment = Element.ALIGN_MIDDLE; 

rs1.AddCell(c); 
rs1.AddCell("more text"); 

return rs1; 

答えて

2

ああ。段落ではなく、PdfCellの縦線の整列を設定する必要があります。

PdfPCell c = new PdfPCell(); 
c.setVerticalAlignment(Element.ALIGN_MIDDLE); 
... 
+0

私は垂直 – Rod

+1

がその後の段落に垂直配向として段落の代わりに...いやなものを設定しない設定しました。うーん。 'Paragraph'ではなく' Chunk'や 'Phrase'を追加することをお勧めします。段落が拡大して横の領域を埋めるように見えます。小さなビルディングブロックを使用することで、それを防止し、セルの位置合わせを適切に行えるようにしたいと考えています。それがうまくいくかまだわからない。 –

+0

どうやらそうでした。 –

5

iTextSharpを使用すると、使用するコンストラクタによって動作が異なることがあります。このは、テキストを揃えないます

PdfPCell c = new PdfPCell(); 
c.Add(new Phrase("Whatever")); 
c.setHorizontalAlignment(Element.ALIGN_CENTER); 

しかし、この意志:

PdfPCell c = new PdfPCell(new Phrase("Whatever")); 
c.setHorizontalAlignment(Element.ALIGN_CENTER); 

これはまさに、なぜ私はそれは、セルがテキスト」であることとは何かを持って、知りませんコンポーザーにフレーズを追加する場合は、後で追加する場合はコンポジットモードを使用します(この場合、各オブジェクトは独自のアライメントを考慮する必要があります)。

(Javaでは、まだ適用されます)

いくつかの詳細はhttp://tutorials.jenkov.com/java-itext/table.html#cell-modes