我正在创建一个包含多个表格的 PDF 文档,当表格只有一行时,它不会将其添加到文档中。当我在另一篇文章中看到这一点时,我检查了该行是否已完成,并添加了table.completeRow()以防万一。然而,它工作的唯一方法是添加另一个空行:table.addCell(new Paragraph("", paragraphFontNormal));table.completeRow()我不认为这是一个很好的解决方案,我想知道这里出了什么问题。有人可以帮忙吗?这是方法:public void createPdf(DateRange dates, HttpServletResponse response) throws DocumentException, IOException { boolean first = true; Document document = new Document(PageSize.A4.rotate()); PdfWriter.getInstance(document, response.getOutputStream()); document.open(); List<Rejects> report = findAll(dates); for(Rejects rejects : report){ if (first) { first = false; addGroupAdmin(rejects, document, dates); }else{ if (rejects.getAdminGroup().equals(adminGroup)) { table.addCell(new Paragraph(rejects.getZone(), paragraphFontNormal)); table.addCell(new Paragraph(dateFormat.format(rejects.getRejDate()), paragraphFontNormal)); table.addCell(new Paragraph(rejects.getProcName(), paragraphFontNormal)); table.addCell(new Paragraph(rejects.getKindId(), paragraphFontNormal)); table.addCell(new Paragraph(rejects.getVarietyName(), paragraphFontNormal)); table.addCell(new Paragraph(rejects.getSlrn(), paragraphFontNormal)); table.addCell(new Paragraph(rejects.getRejReason(), paragraphFontNormal)); table.addCell(new Paragraph(rejects.getAdminGroup(), paragraphFontNormal)); table.addCell(new Paragraph(rejects.getDescription(), paragraphFontNormal)); }else{ /*** It doesn't work like this for one row***/ document.add(table); document.newPage(); addGroupAdmin(rejects, document, dates); } } }
1 回答
拉风的咖菲猫
TA贡献1995条经验 获得超2个赞
你设置
table.setHeaderRows(1);
这意味着您添加到表格中的第一行用作标题行。
因此,如果
该表只有一行
那么该表有一个标题行但没有内容行。iText 忽略没有内容行的表格。因此,
它不会将其添加到文档中。
所以解决方案不是HeaderRows
在你的addGroupAdmin
方法中设置!
添加回答
举报
0/150
提交
取消