2017-07-07 142 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();