2011-02-04 6 views

ответ

46

Пограничные элементы PdfPTable определяются PdfPCell, которые добавляются к таблице. Каждая ячейка будет иметь свой собственный стиль/форматирование. Вот API: http://api.itextpdf.com/

Пример

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); 

Если вы хотите более подробно о значениях/Прямоугольник границ, посмотрите на постоянные значения раздела IText для прямоугольника, здесь: http://api.itextpdf.com/constant-values.html

+0

Спасибо, это то, что я хотел. – yogsma

+0

Я пробовал как самостоятельно, так и оба, кажется, делают границу невидимой. В чем же разница между 'cellOne.setBorder (Rectangle.NO_BORDER);' и 'cellTwo.setBorder (Rectangle.BOX);'? – Qohelet

+0

спасибо, работа хорошо !! –

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;' - это просто не выглядит правильным. После тестирования я также обнаружил, что это не сработает. Если свойства DefaultCell и Border не являются общедоступными, это никогда не сможет работать. – wmdvanzyl

+0

Он может работать, но только в C# (видя случай вызовов свойств и методов), в то время как OP задал вопрос о решении Java. Кроме того, в строках 4-6 отсутствуют скобки. – mareckmareck

11

В моем приложении работает следующим образом:

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

Это не сработало для меня. – wmdvanzyl

+2

'Rectangle.NO_BORDER' - это то же самое, что и' 0'. Я бы предпочел использовать имя константы, более удобное для чтения и всегда совместимое при обновлении версии. – chillworld

+1

Этот метод не работает в версии 5.5.6. Ответ Шона верен: cellOne.setBorder (Rectangle.NO_BORDER); –

1

Ниже работает для меня.

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

Нет, он не работает –

0

комплект ячейка цвет белый. cellOne.setBorderColor (BaseColor.WHITE);