垂直对齐不在复合模式下工作

时间:2010-12-09 21:08:10

标签: itextsharp

以下内容应根据文档进行操作,但不适用于我。我错过了什么吗?

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 个答案:

答案 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

答案 1 :(得分:2)

阿。您需要设置PdfCell的垂直对齐方式,而不是段落。

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