テーブルのサイズが常に同じであるとは限らないため、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の最後に追加しようとします。テーブルを表示できますが、これをフィールドに追加する方法はありますか??
そして私のコードテーブルにページサイズよりも多くの行がある場合、テーブルは分割されません。そして、本「itext in ACtion」で述べられているitextマニュアルと同じことをします。
前もって感謝します!!