С 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