2011-02-04 16 views

Odpowiedz

46

Elementy obramowania PdfPTable są definiowane przez PdfPCell, które są dodawane do tabeli. Każda komórka będzie miała własny styl/formatowanie. Oto API: http://api.itextpdf.com/

Przykład

PdfPTable table = new PdfPTable(2); 
PdfPCell cellOne = new PdfPCell(new Phrase("Hello")); 
PdfPCell cellTwo = new PdfPCell(new Phrase("World")); 

cellOne.setBorder(Rectangle.NO_BORDER); 
cellOne.setBackgroundColor(new Color(255,255,45)); 

cellTwo.setBorder(Rectangle.BOX); 

table.addCell(cellOne); 
table.addCell(cellTwo); 

Jeśli chcesz więcej szczegółów na temat wartości/Granicznej Prostokąt, spójrz na itext wartości stałych sekcji dla prostokąta tutaj: http://api.itextpdf.com/constant-values.html

+0

Dzięki, tego właśnie chciałem. – yogsma

+0

Próbowałem obu niezależnie i oba wydają się sprawiać, że granica jest niewidoczna. Czym dokładnie jest różnica między 'cellOne.setBorder (Rectangle.NO_BORDER); a' cellTwo.setBorder (Rectangle.BOX); '? – Qohelet

+0

dzięki, działa dobrze !! –

2
PdfPTable nestedTable = new PdfPTable(); 
    nestedTable.DefaultCell.Border = 0; 

    nestedTable.AddCell(new Phrase("First"); 
    nestedTable.AddCell(new Phrase("Second"); 
    nestedTable.AddCell(new Phrase("2515"); 

    PdfPCell nestCell= new PdfPCell(nestedTable); 
+0

'nestedTable.DefaultCell.Border = 0;' - to po prostu nie wygląda dobrze. Po przetestowaniu okazało się, że to nie działa. Dopóki właściwości DefaultCell i Border nie są publiczne, to nigdy nie będzie działać. – wmdvanzyl

+0

Może działać - ale tylko w języku C# (widząc przypadek wywołań właściwości i metod), a OP pyta o rozwiązanie Java. Ponadto w nawiasach 4-6 brakuje nawiasów. – mareckmareck

11

W mojej aplikacji działa tak:

PdfPTable table = new PdfPTable(2); 
table.getDefaultCell().setBorder(0); 
... 
+2

To nie działa dla mnie. – wmdvanzyl

+2

'Rectangle.NO_BORDER' to to samo co' 0' Wolałbym używać nazwy stałych, łatwiejszej do odczytania i zawsze kompatybilnej przy aktualizacji w wersji. – chillworld

+1

Ta metoda nie działa w wersji 5.5.6. Odpowiedź Seana jest poprawna: cellOne.setBorder (Rectangle.NO_BORDER); –

1

Poniższe działa dla mnie.

table.getDefaultCell().setBorderWidth(0f); 
+0

Nie, to nie działa –

0

ustaw kolor komórki na biały. cellOne.setBorderColor (BaseColor.WHITE);