2016-09-15 99 views
0

我試圖集中列的標題和「貨幣值」對齊。對齊pdfTable中的單元格 - ITextSharp

這是我的頭,剩下currentlyn對齊,我需要到中心

PdfPCell cell = new PdfPCell(new iText.Phrase("")); 
       cell.HorizontalAlignment = 1; 
       cell.Colspan = 7; 
       pdfTable.HorizontalAlignment = 1; 
       pdfTable.AddCell(new iText.Phrase("NF", font4)); 
       pdfTable.AddCell(new iText.Phrase("Emissão", font4)); 
       pdfTable.AddCell(new iText.Phrase("Vencimento", font4)); 
       pdfTable.AddCell(new iText.Phrase("Dias", font4)); 
       pdfTable.AddCell(new iText.Phrase("Valor(R$)", font4)); 
       pdfTable.AddCell(new iText.Phrase("Encargos(R$)", font4)); 
       pdfTable.AddCell(new iText.Phrase("Vlr. Final(R$)", font4)); 

而這正是我填的表中,列 「華萊(R $)」,「Encargos(R $) 「,」Vlr。Final(R $)「需要對齊,有人知道我做錯了什麼?

foreach (DataRow r in dtNotaAceite.Rows) 
       { 
        if (dtNotaAceite.Rows.Count > 0) 
        { 
         DateTime dataEmissao = (DateTime) r["Dtemissao"]; 
         DateTime dataVenc = (DateTime)r["Dtvenc"]; 
         string emissaoFormatada = dataEmissao.ToString("dd/M/yyyy"); 
         string vencFormatada = dataVenc.ToString("dd/M/yyyy"); 
         r["VLFINAL"] = Convert.ToDecimal(r["Valor"]) - Convert.ToDecimal(r["VLENCARGOS"]); 
         pdfTable.AddCell(new iText.Phrase(r["Belnr"].ToString(), font3)); 
         pdfTable.AddCell(new iText.Phrase(emissaoFormatada, font3)); 
         r["Dtvenc"] = String.Format("{0:dd-MM-yyyy}", r["Dtvenc"]); 
         pdfTable.AddCell(new iText.Phrase(vencFormatada, font3)); 
         pdfTable.AddCell(new iText.Phrase(r["DIASANTEC"].ToString(), font3)); 
         pdfTable.AddCell(new iText.Phrase(r["Valor"].ToString(), font3)); 
         r["VLENCARGOS"] = String.Format("{0:0.##}", r["VLENCARGOS"]); 
         pdfTable.AddCell(new iText.Phrase(r["VLENCARGOS"].ToString(), font3)); 
         r["VLFINAL"] = String.Format("{0:0.##}", r["VLFINAL"]); 
         pdfTable.AddCell(new iText.Phrase(r["VLFINAL"].ToString(), font3)); 
        } 
       } 

回答

2

你在做什麼錯?

您創建一個PdfPCell命名爲您定義排列cell(以醜陋的方式,你應該使用Element.ALIGN_CENTER讓大家能看懂你的代碼)和7 一個合併單元格但你不使用細胞對象...

您創建一個PdfPTable您爲其定義一個對齊方式(以同樣醜陋的方式)。 但是這定義了整個表格的排列,而不是單元格的內容。

然後,您使用AddCell()方法將一系列單元格添加到此表中。這意味着您希望iText創建PdfPCell。在這種情況下,您可以在默認的單元格屬性預先定義的一些屬性:

pdfTable.DefaultCell.HorizontalAlignment = Element.ALIGN_CENTER; 

您可以添加一定數目的細胞後,更改默認的單元格的屬性,例如:

pdfTable.DefaultCell.HorizontalAlignment = Element.ALIGN_CENTER; 
pdfTable.AddCell(new iText.Phrase("NF", font4)); 
pdfTable.AddCell(new iText.Phrase("Emissão", font4)); 
pdfTable.AddCell(new iText.Phrase("Vencimento", font4)); 
pdfTable.AddCell(new iText.Phrase("Dias", font4)); 
pdfTable.AddCell(new iText.Phrase("Valor(R$)", font4)); 
pdfTable.AddCell(new iText.Phrase("Encargos(R$)", font4)); 
pdfTable.AddCell(new iText.Phrase("Vlr. Final(R$)", font4)); 
pdfTable.DefaultCell.HorizontalAlignment = Element.ALIGN_RIGHT; 

在最後一行之後,所有與AddCell()一起添加的單元格將右對齊。

+0

謝謝,現在我所有的細胞都是集中化的,而Money值是正確的。 –