2009-08-27 13 views
8

मैं iText संस्करण 2.1.0 के साथ एक पीडीएफ बना रहा हूं। मुझे एक टेबल के एक सेल में "विस्तार" सेल बनाना है। मैंने उस सेल के अंदर एक टेबल घोंसला किया। इस दृष्टिकोण के साथ समस्या यह है कि नेस्टेड टेबल की सीमाएं कंटेनर सेल की सीमाओं को छूती नहीं हैं। जो मैं खोज रहा हूं वह एक सेल के अंदर घोंसला वाली एक मेज के लिए है, जिसकी सीमाएं नेस्टेड टेबल सीमाओं से अलग नहीं होती हैं।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

मुझे लगता है कि एक टाइपो है। यह शायद सी 2 होना चाहिए। मैं इसे ठीक कर दूंगा। – Averroes

2

आप पहचान के रूप में,

cell.setPadding(0); 

तुम क्या आवश्यकता थी।

+1

हां, लेकिन मैंने पाया कि इस तरह से c2 = नया पीडीएफपीसेल(); c2.addElement (testTable); c2.setPadding (0); c2 = new PdfPCell (testTable) जैसा ही काम नहीं करता है; c2.setPadding (0); outerTable.addCell (सी 2); पहले मामले में आप नेस्टेड टेबल सीमाएं देख सकते हैं। – Averroes

+1

हां, AddElement का उपयोग करते समय जोड़ा तत्व गुणों का उपयोग किया जाता है। कन्स्ट्रक्टर का उपयोग करते समय तालिका कक्ष की गुणों का उपयोग अतिरिक्त तत्व के गुणों के बजाय किया जाता है। –

3

मैंने पाया कि क्या मेरी टेबल से छोटी enclosing सेल है कि मैं मेज के लिए निम्न कोड जोड़ने नहीं किया गया था होना करने के लिए पैदा कर रहा था: करने के लिए भेजा नहीं

table.setWidthPercentage(100); 
संबंधित मुद्दे