2009-08-27 5 views
8

Я создаю PDF-файл с iText версии 2.1.0. Я должен создать ячейку «detail» в ячейке таблицы. Я сделал это вложенное стол внутри этой ячейки. Проблема с этим подходом заключается в том, что границы вложенной таблицы не касаются границ ячейки контейнера. То, что я ищу, - это таблица, вложенная внутри ячейки, границы которой не отличаются от границ вложенных таблиц.iText вложенная таблица внутри ячейки

У меня такой тест, как этот. Я делаю это внутри цикла, чтобы добавить таблицы внутри ячейки во внешний стол:

PdfPCell testCell = new PdfPCell(new Paragraph("Test")); 
//I want this border to touch the containerCell borders. 
testCell.setBorder(PdfPCell.BOTTOM); 
testTable = new PdfPTable(2); 

testTable.addCell(testCell); 
testTable.addCell(testCell); 
testTable.addCell(testCell); 
testTable.addCell(testCell); 

PdfPCell containerCell = new PdfPCell(); 
containerCell.addElement(testTable); 
outerTable.addCell(containerCell); 

Спасибо.

ответ

16

Я думаю, что я наконец-то нашел его:

testTable = new PdfPTable(1); 
PdfPCell c2; 
testTable.addCell("aaaa"); 
testTable.addCell("bbbb"); 

c2 = new PdfPCell (testTable);//this line made the difference 
c2.setPadding(0); 
outerTable.addCell(c2); 

Хитрость здесь, используя таблицу в одном из конструктора PdfPCell.

+0

Почему c1, но не упоминается? Это необходимо? –

+0

Я думаю, это опечатка. Это должно быть, скорее всего, c2. Я починю это. – Averroes

2

Как вы определили,

cell.setPadding(0); 

является то, что вам нужно.

+1

Да, но я обнаружил, что это делается c2 = new PdfPCell(); c2.addElement (testTable); c2.setPadding (0); не работает так же, как c2 = новый PdfPCell (testTable); c2.setPadding (0); внешнийTable.addCell (c2); В первом случае вы можете видеть границы вложенных таблиц. – Averroes

+1

Да, при использовании AddElement используются свойства добавленного элемента. При использовании конструктора используются свойства ячейки таблицы, а не все свойства добавленного элемента. –

3

я обнаружил, что то, что было причиной моих таблиц быть меньше ограждающих клеток, что я не добавлял следующий код в таблице:

table.setWidthPercentage(100); 
Смежные вопросы