如何在现有pdf中的字段中添加动态pdfPtable

时间:2014-05-12 16:50:45

标签: java pdf itext pdf-reader pdfptable

我有一个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手册一样。

提前致谢!!

0 个答案:

没有答案