我有一个pdf模板,我想在特定字段中插入动态pdfPTable,因为表格大小并不总是相同。
这是我的代码:
FileOutputStream fileout = new FileOutputStream(filePath);
PdfPTable table = new PdfPTable(4);
table.setSpacingBefore(50);
table.setSpacingAfter(50);
table.setWidthPercentage(450 / 5.23f);
table.setWidths(new int[]{1, 1, 1, 1});
table.setSplitLate(false);
table.getDefaultCell().setHorizontalAlignment(Element.ALIGN_LEFT);
table.getDefaultCell().setBorder(0);
PdfPCell cell;
cell = new PdfPCell(new Phrase(Veritas.INFORME_FIRMAS));
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
cell.setColspan(4);
table.addCell(cell);
table.addCell("DNI");
table.addCell("IP Externa");
table.addCell("IP Interna");
table.addCell("Fecha de Firma");
for(int i=0; i<55;i++){
for (Documento doc : this.documentList) {
table.addCell(doc.getid());
table.addCell(doc.getName());
table.addCell(doc.getLastName());
table.addCell(doc.getDate());
}
}
table.setHeaderRows(3);
table.setFooterRows(1);
table.setTotalWidth(500);
PdfReader reader = new PdfReader(Veritas.INFORME_BASEFILE);
// Create a stamper
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(filePath));
// Add the table to each page
PdfContentByte canvas;
for (int i = 0; i < reader.getNumberOfPages(); ) {
canvas = stamper.getOverContent(++i);
table.writeSelectedRows(0, -1, 50, 500, canvas);
}
// Close the stamper
stamper.close();
reader.close();
我展示了添加内容的不同方法。最后我尝试将表添加到pdf的末尾。我可以显示表格,但有没有办法将其添加到字段中?
我的代码如果表的行数多于页面大小,则表格不会拆分。我也像在“ACTION中的itext”一书中所说的itext手册一样。
提前致谢!!