2014-09-22 67 views
0

我创建了一个N列表使用setHeaderRows(N)表,当我添加到表N-1记录和部署时,什么都不显示,即如果我创建一个表有5列标题,只需添加4个或更少的记录到表中,不显示任何内容。itext pdf不显示表时setHeaderRows

示例代码

Document document = new Document(new Rectangle(605, 784), 28, 28, 42, 28); 
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("/temp/tabla.pdf")); 
documento.open(); 
// Create table 
PdfPTable tabla = new PdfPTable(5); 
tabla.setComplete(false); 
tabla.setWidthPercentage(100); 
tabla.getDefaultCell().setBackgroundColor(BaseColor.WHITE); 
tabla.setHeaderRows(5); 
// Add Header Rows 
for(int i=1; i<=5; i++) 
{ 
    celda = new PdfPCell(); 
    Paragraph encabezado = new Paragraph("Header "+i);   
    celda.addElement(encabezado); 
    celda.setGrayFill(0.8f); 
    tabla.addCell(celda); 
}    
// Add some cells    
for(int k=0; k<19; k++) 
{ 
    celda = new PdfPCell(); 
    Paragraph contenido = new Paragraph("Cell "+k, helvetica11); 
    celda.addElement(contenido);      
    tabla.addCell(celda); 
} 
// In total add 4 rows 

tabla.completeRow(); 
document.add(tabla); 
document.close(); 

通常情况下,表格单元格是从SQL查询,它可以返回一个或多个记录填充数据,我都充满了一个表“的”循环显示故障。

有人可以帮助我如何解决这个问题?我应该设置什么参数?或任何想法?

回答

0

您的表只包含标题行。表中没有真实的数据。

你应该改变:

tabla.setHeaderRows(5); 

分为:

tabla.setHeaderRows(1); 
+0

如果你看到在部分评论的代码//添加一些细胞 - 添加一些细胞,但它是真的是唯一的演示表表中填充了来自sql查询的数据 – TiPHeReTH 2014-09-23 16:04:39

+0

代码工作正常,同时行数add>≥5,但是任何sql查询,在这种情况下得到的记录数更少 – TiPHeReTH 2014-09-23 16:17:46

+0

它只需要一行Header – TiPHeReTH 2014-09-23 18:24:04