2017-07-07 110 views
0

我想設置我的pdf單元格的邊框和顏色。顏色和邊框設置在itextsharp

PdfPCell[] headingcell = new PdfPCell[] { 
       new PdfPCell(new Phrase("abc", font9)), 
       new PdfPCell(new Phrase("abc", font9)), 
       new PdfPCell(new Phrase("abc", font9)), 
       new PdfPCell(new Phrase("abc", font9)), 
       new PdfPCell(new Phrase("abc", font9)), 
       new PdfPCell(new Phrase("abc_abc_abc", font9)), 
       new PdfPCell(new Phrase("abc", font9)), 
       new PdfPCell(new Phrase("abc", font9)), 
       new PdfPCell(new Phrase("abc", font9)), 
       new PdfPCell(new Phrase("abc", font9)), 
       new PdfPCell(new Phrase("abc", font9)), 
       new PdfPCell(new Phrase("abc", font9)), 
       new PdfPCell(new Phrase("abc", font9)), 
       new PdfPCell(new Phrase("abc", font9)), 
      }; 

      headingcell[0].BackgroundColor = BaseColor.DARK_GRAY; 
      headingcell[1].BackgroundColor = BaseColor.DARK_GRAY; 
      headingcell[2].BackgroundColor = BaseColor.DARK_GRAY; 
      headingcell[3].BackgroundColor = BaseColor.DARK_GRAY; 
      headingcell[4].BackgroundColor = BaseColor.DARK_GRAY; 
      headingcell[5].BackgroundColor = BaseColor.DARK_GRAY; 
      headingcell[6].BackgroundColor = BaseColor.DARK_GRAY; 
      headingcell[7].BackgroundColor = BaseColor.DARK_GRAY; 
      headingcell[8].BackgroundColor = BaseColor.DARK_GRAY; 
      headingcell[9].BackgroundColor = BaseColor.DARK_GRAY; 
      headingcell[10].BackgroundColor = BaseColor.DARK_GRAY; 
      headingcell[11].BackgroundColor = BaseColor.DARK_GRAY; 
      headingcell[12].BackgroundColor = BaseColor.DARK_GRAY; 
      headingcell[13].BackgroundColor = BaseColor.DARK_GRAY; 

      headingcell[0].BorderWidth = 0;     
      headingcell[1].BorderWidth = 0; 
      headingcell[2].BorderWidth = 0; 
      headingcell[3].BorderWidth = 0; 
      headingcell[4].BorderWidth = 0; 
      headingcell[5].BorderWidth = 0; 
      headingcell[6].BorderWidth = 0; 
      headingcell[7].BorderWidth = 0; 
      headingcell[8].BorderWidth = 0; 
      headingcell[9].BorderWidth = 0; 
      headingcell[10].BorderWidth = 0; 
      headingcell[11].BorderWidth = 0; 
      headingcell[12].BorderWidth = 0; 
      headingcell[13].BorderWidth = 0; 
      table.Rows.Add(new PdfPRow(headingcell)); 

我能夠實現我想這個編碼,但我想問一下有沒有更有效的方式來實現這一目標?因爲這些代碼只有這麼小的東西纔有用。

回答

1

您可以使用一個for循環:

for (var i = 0; i <= 13; i++) 
{ 
    headingcell[i].BackgroundColor = BaseColor.DARK_GRAY; 
    headingcell[i].BorderWidth = 0; 
} 
0

把你的參數到一個數組或詞典,例如:

 List<object[]> data= new List<object[]> 
     { 
      new object[] {"abc", "font9"}, 
      new object[] {"abc", "font9"}, 
      new object[] {"abc", "font9"}, 
      new object[] {"abc", "font9"}, 
      new object[] {"abc_abc_abc", "font9"}, 
      // etc... 
     }; 

那麼你可以做你的工作有一個LINQ聲明:

 PdfCell[] cells = data.Select(x => 
     { 
      return new PdfCell(new Phrase(x[0], x[1])) 
      { 
       BackgroundColor = BaseColor.DARK_GRAY, 
       BorderWidth = 0 
      }; 
     }).ToArray();