2014-04-06 58 views
3

我嘗試使用ItextSharp對齊PDF表格中的單元格內容。不知何故,它根本不起作用,它總是在左邊對齊。pdftext的ItextSharp水平對齊

 var pageSize = PageSize.A4; 

     if (_pdfSettings.LetterPageSizeEnabled) 
     { 
      pageSize = PageSize.LETTER; 
     } 


     var doc = new Document(pageSize); 
     PdfWriter.GetInstance(doc, stream); 
     doc.Open(); 

     //fonts  

     var normalFont = GetFont(); 

      normalFont.Color = BaseColor.BLACK; 
      normalFont.Size = 14; 

     //..titlefont, smallfont,largefont.... 

     var addressTable = new PdfPTable(1); 
     addressTable.WidthPercentage = 100f; 

     cell = new PdfPCell(); 

     cell.AddElement(new Paragraph("Người Gửi", titleFont)); 
     cell.AddElement(new Paragraph("TAKARA.VN", largeFont)); 

     cell.HorizontalAlignment = Element.ALIGN_RIGHT; 

     addressTable.AddCell(cell); 

     doc.Add(addressTable); 
     doc.Add(new Paragraph("", normalFont)); 

更新:我找到了答案

你混淆了文本模式和混合模式。

文字模式:

Phrase p = New Phrase("value"); 
PdfPCell cell = new PdfPCell(p); 
cell.HorizontalAlignment = Element.ALIGN_CENTER; 
table.AddCell(cell); 

複合模式:

PdfPCell cell = New PdfPCell(); 
Paragraph p = New Paragraph("value"); 
p.Alignment = Element.ALIGN_CENTER; 
cell.AddElement(p); 
table.AddCell(cell); 

在文本模式下的小區的對準被使用。在複合模式(通過使用的addElement()觸發時,細胞的排列有利於加入到細胞中元素的排列被忽略

+0

*更新:我找到了答案* - 請麥e一個實際的答案或者(如果你在堆棧溢出中發現這個答案)將你的問題標記爲該答案問題的重複。 – mkl

回答

0

我不喜歡這樣,它爲我工作。

cell.HorizontalAlignment = 1; 
1

您可以使用:

cell.HorizontalAlignment = PdfPCell.ALIGN_CENTER; 

或者你也可以使用對齊的數字:0=Left1=Centre2=Right