Java 如何将动态pdfPtable添加到现有pdf中的字段中

Java 如何将动态pdfPtable添加到现有pdf中的字段中,java,pdf,itext,pdf-reader,pdfptable,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); ta

我有一个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();
FileOutputStream fileout=新的FileOutputStream(filePath);
PdfPTable=新的PdfPTable(4);
表1.之前的设定值(50);
表5.50之后的设置间隔;
表2.设定宽度百分比(450/5.23f);
表.setWidths(新的int[]{1,1,1,1});
表.设置分裂状态(假);
table.getDefaultCell().setHorizontalAlignment(Element.ALIGN_LEFT);
table.getDefaultCell().setOrder(0);
PDFP细胞;
cell=新的PdfPCell(新短语(Veritas.INFORME_FIRMAS));
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
细胞。setColspan(4);
表2.addCell(cell);
表1.addCell(“DNI”);
表.addCell(“IP外部”);
表.addCell(“IP Interna”);
表2.addCell(“Fecha de Firma”);

for(int i=0;iAn existing field有一个现有的预定义大小。您如何期望动态大小的内容能够与之相适应?您对我的书的解释是错误的。您试图实现的东西只有使用动态XFA表单才能实现,请参见第8.6.2节。您使用的是静态表单。