2011-06-19 24 views
22

Podczas gdy możliwe jest oczywiście użycie BaseColor, domyślnie oferuje on bardzo ograniczone możliwości.Jak ustawić kolor tła komórki tabeli za pomocą iText?

Zastanawiam się, w jaki sposób mogę dodać własny niestandardowy kolor do dokumentu?

... 
     PdfPTable table = new PdfPTable(3); 

     PdfPCell cell = new PdfPCell(new Phrase("some clever text")); 
     cell.setBackgroundColor(BaseColor.GREEN); 
     table.addCell(cell); 
... 

Odpowiedz

20

wiele opcji.

BaseColor color = new BaseColor(red, green, blue); // or red, green, blue, alpha 
CYMKColor cmyk = new CMYKColor(cyan, yellow, magenta, black); // no alpha 
GrayColor gray = new GrayColor(someFloatBetweenZeroAndOneInclusive); // no alpha 

Dostępne są również kolory deseniu i kolory cieniowania, ale te są znacznie mniej proste.

44

Publikowanie w nadziei, że ktoś inny uzna tę odpowiedź za przydatną.

Wydaje można utworzyć nowy BaseColor z WebColor jak:

BaseColor myColor = WebColors.GetRGBColor("#A00000"); 

które następnie mogą być dodawane jako tło jak:

cell.setBackgroundColor(myColor); 
+0

Bardzo użyteczny i zbyt wiele prostsze. Dzięki! – silver

+0

Z jakiegoś powodu mój kolor tła jest domyślnie ustawiony na # 00FFFF i nie chce się zmienić na kolor, który chcę ustawić:/Myślę, że zostały zmienione nowe itext Sharp, ale oto co napisałem: BaseColor bblue = WebColors.GetRGBColor ("# 006EB6"); headerCell.BackgroundColor.Equals (bblue), ale BackgroundColor jest nadal ustawiony na domyślny .. Nie można znaleźć setBackgroundColor tylko BackgroundColor. –

+2

WebColors jest teraz przestarzały, czy znasz współczesny sposób robienia tego, czy też powinniśmy po prostu zignorować jego przestarzałość (jak wydaje się, że iTextSharp wykorzystuje większość tego, co używam jako przestarzałe)? –

0

Jeszcze rozwiązaniem jest:

public static String mColor = "#aa8cc5"; 
int aa = Integer.parseInt(mColor,16); // base 16 
int colorArr = Color.rgb(Color.red(aa),Color.green(aa),Color.blue(aa)); 
cell1.setBackgroundColor(new BaseColor(colorArr)); 
1

Spróbuj tego:
cell.setBackgroundColor(new BaseColor(226, 226, 226));
czyli
cell.setBackgroundColor(WebColors.getRGBColor("#E2E2E2"));przestarzałe

Powiązane problemy