我正在尝试使用一些数据创建PDF。数据用表格表示。有2个表。
一个表格中有5行3列占据了PDF页面的近一半1.另一个表格有50行和3列,它们是在新页面中创建的(第2页)而不是在第1页后继续第1页的表格。
如何使PDF在第1页的第一个表下创建第二个表,如果第二个表有更多行,则继续第2页。我应该使用PdfPageEvent吗?
public static void createPDF() throws IOException {
Document document = new Document();
PdfWriter pdfWriter = null;
String fileName = "temp.pdf";
try {
filePath = tempDirPath + File.separator + fileName;
FileOutputStream fos = new FileOutputStream(filePath);
pdfWriter = PdfWriter.getInstance(document, fos);
document.open();
document.add(addTitleTable());
document.add(addObjsTable());
document.add(addDateTable());
document.close();
pdfWriter.close();
}
catch (Exception e) {
e.printStackTrace();
}
finally {
document.close();
pdfWriter.close();
}
}
答案 0 :(得分:1)
您的问题无法复制。
我创建了这个例子:
public void createPdf(String dest) throws IOException, DocumentException {
Document document = new Document();
PdfWriter.getInstance(document, new FileOutputStream(dest));
document.open();
// Table 1
PdfPTable table = new PdfPTable(3);
table.setSpacingAfter(10);
for(int i = 1; i <= 15; i++){
table.addCell("Cell " + i);
}
document.add(table);
table = new PdfPTable(3);
for(int i = 1; i <= 150; i++){
table.addCell("Cell " + i);
}
document.add(table);
document.close();
}
首先,我们创建一个包含3列和5行(总共15个单元格)的表。我们在10个用户单位的表之后定义一个小间距。
然后我们创建一个包含3列和50行(总共150个单元格)的表。
我们将两个表一个接一个地添加到文档中。结果如下:
我已按照您在问题中分享的所有说明进行操作,我获得的结果显示您对第二张表在新页面上开始的指控是错误的。第二个表与第一个表在同一页面上开始。两个表之间有10个用户单元的间隙(如我们的代码中所定义)。也许您的代码存在问题,但请理解,如果没有人可以重现问题,没有人可以帮助您。