我正在使用以下 Java 代码用 itext 填充 pdf 模板
PdfReader pdfTemplate = getPdfReader(templateFile);
PdfStamper stamper = new PdfStamper(pdfTemplate, writer);
stamper.getAcroFields().setField("#ID", "1");
stamper.getAcroFields().setField("#value", "27");
stamper.getAcroFields().setField("#valuexxx", "99");
stamper.setFormFlattening(true);
// TODO Dynamic Table
stamper.close();
pdfTemplate.close();
现在我的问题:
我会用表格动态长度替换 PDF 中的文本字段。
我试过了
float[] fieldPosition= pdfTemplate.getAcroFields().getFieldPositions("tableField");
PdfPTable table = buildTable();
PdfContentByte cb = stamper.getOverContent(1);
table.writeSelectedRows(0, -1, fieldPosition[1],fieldPosition[4],cb);
这很好用,但是当字段是一些内容之后,表格“覆盖它”,第二个问题是表格的行数超过页面可以容纳的行数。
有人知道如何真正替换字段并重建以下文档吗?