2009-08-27 6 views
8

iText 버전 2.1.0으로 PDF를 만들고 있습니다. 테이블의 셀에 "세부 사항"셀을 만들어야합니다. 나는이 셀 안쪽에 테이블을 중첩시켰다. 이 방법의 문제점은 중첩 테이블의 테두리가 컨테이너 셀의 테두리에 닿지 않는다는 것입니다. 내가 찾고있는 중첩 된 테이블 테두리에서 테두리를 구분하지 않는 셀 안에 중첩 된 테이블에 대한 것입니다.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

나는 마침내 그것을 발견 생각 : 여기에 트릭이 PdfPCell 생성자 중 하나에 테이블을 사용

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

.

이 확인 된
+0

왜 (C1)가 있지만 언급하지? 그게 필요한가요? –

+0

나는 오타라고 생각합니다. 아마도 c2 여야합니다. 나는 고칠 것이다. – Averroes

2

,

cell.setPadding(0); 

당신이 필요한 것입니다.

+1

예,하지만이 방법으로 발견했습니다. c2 = new PdfPCell(); c2.addElement (testTable); c2.setPadding (0); 과 같은 방식으로 작동하지 않습니다. c2 = new PdfPCell (testTable); c2.setPadding (0); outerTable.addCell (c2); 첫 번째 경우 중첩 테이블 테두리를 볼 수 있습니다. – Averroes

+1

예, AddElement를 사용하면 추가 된 요소의 속성이 사용됩니다. 생성자를 사용할 때 추가 된 요소의 속성이 무엇이든간에 테이블 셀의 속성이 사용됩니다. –

3

내가 발견 둘러싸는 세포가 나는 테이블에 다음 코드를 추가되지 않았 음을보다 작게 내 테이블을 일으키는 원인이 있었는지 :

table.setWidthPercentage(100);