Я думаю, что основная проблема, с которой вы столкнулись, заключается в том, что вы добавляете текст в объекты iTextSharp Paragraph
, а затем пытаетесь установить выравнивание этого текста, используя объект PdfPCell
, который его содержит.Я не уверен, что свойство PdfPCell.VerticalAlignment
предназначено только для текста PdfPCell
или выравнивание объекта Paragraph
внутри PdfPCell
не имеет никакого эффекта, который вы можете увидеть в своем тесте.
Вы также устанавливаете myCell.HorizontalAlignment
и myCell.VerticalAlignment
в качестве значения индекса в цикле for
.Я думаю, вы хотели использовать 1 экземпляр из i
.
В любом случае, установка свойств HorizontalAlignment
и VerticalAlignment
в PdfPCell действительно работает.Ниже приведен небольшой метод, который демонстрирует это.Я написал это очень свободно, основываясь на том, что вы пытались сделать;если это достаточно близко к тому, что вы пытаетесь сделать, возможно, вы можете использовать это как отправную точку в вашем проекте.
private void TestTableCreation() {
using (FileStream fs = new FileStream("TableTest.pdf", FileMode.Create)) {
Document doc = new Document(PageSize.A4);
PdfWriter.GetInstance(doc, fs);
doc.Open();
PdfPTable table = new PdfPTable(4);
for (int i = -100; i < 100; i++) {
PdfPCell cell = new PdfPCell(new Phrase(String.Format("Alignment: {0}", i)));
// Give our rows some height so we can see test vertical alignment.
cell.FixedHeight = 30.0f;
// ** Try it **
//cell.HorizontalAlignment = Element.ALIGN_LEFT;
//cell.HorizontalAlignment = Element.ALIGN_CENTER;
cell.HorizontalAlignment = Element.ALIGN_RIGHT;
cell.VerticalAlignment = Element.ALIGN_TOP;
//cell.VerticalAlignment = Element.ALIGN_MIDDLE;
//cell.VerticalAlignment = Element.ALIGN_BOTTOM;
table.AddCell(cell);
}
doc.Add(table);
doc.Close();
}
}