如何在Java iTextPDF中设置每页显示的数据量?
iTextPDF动态分页导出问题
我使用Java的iTextPDF库开发了一套PDF导出系统,目前遇到分页数据拆分的问题。我希望通过输入值动态设置每页显示的数据量,尝试了如下代码,但输出结果不符合预期:
// 循环遍历数据行 PdfPTable itemTable = new PdfPTable(headerColumns.length); itemTable.setWidthPercentage(100); for(int i = 0;i< data.size();i++){ // 区域列 PdfPCell area = new PdfPCell(new Phrase(data.get(i).get("area").toString())); area.setPaddingLeft(4); area.setVerticalAlignment(Element.ALIGN_MIDDLE); area.setHorizontalAlignment(Element.ALIGN_CENTER); itemTable.addCell(area); // new_sa列 PdfPCell newSa = new PdfPCell(new Phrase(data.get(i).get("new_sa").toString())); newSa.setPaddingLeft(4); newSa.setVerticalAlignment(Element.ALIGN_MIDDLE); newSa.setHorizontalAlignment(Element.ALIGN_CENTER); itemTable.addCell(newSa); // sa_mtd列 PdfPCell saMtd = new PdfPCell(new Phrase(data.get(i).get("sa_mtd").toString())); saMtd.setPaddingLeft(4); saMtd.setVerticalAlignment(Element.ALIGN_MIDDLE); saMtd.setHorizontalAlignment(Element.ALIGN_CENTER); itemTable.addCell(saMtd); // sa_last_month列 PdfPCell saLastMonth = new PdfPCell(new Phrase(data.get(i).get("sa_last_month").toString())); saLastMonth.setPaddingLeft(4); saLastMonth.setVerticalAlignment(Element.ALIGN_MIDDLE); saLastMonth.setHorizontalAlignment(Element.ALIGN_CENTER); itemTable.addCell(saMtd); // 设置每页最多显示2条数据 if(itemTable.getRows().size() == 2){ document.newPage(); } document.add(table); document.add(itemTable); } document.close();
导出的PDF分页结果不符合预期,数据显示存在异常。
内容的提问来源于stack exchange,提问作者Muhammad Alghifari
相关产品推荐
相关产品推荐

