-3
下面是我使用itext7将PDF格式的表格添加到PDF页面的代码。我正在编辑PDF格式,希望在给定的页面上添加pdf格式的pdf格式
不幸的是,它仅添加到第一页而不是第8页。
PdfDocument pdfDoc = new PdfDocument(new PdfReader(src), new PdfWriter(dest));
Table table = new Table(new float[]{1, 15});
table.setWidthPercent(80);
table.addHeaderCell("#");
table.addHeaderCell("description");
PageSize ps = pdfDoc.getDefaultPageSize();
PdfPage p =pdfDoc.getPage(8);
Document doc = new Document(p.getDocument());
table.setFixedPosition(doc.getLeftMargin(), doc.getBottomMargin(), ps.getWidth() - doc.getLeftMargin() - doc.getRightMargin());
IRenderer tableRenderer = table.createRendererSubTree().setParent(doc.getRenderer());
LayoutResult tableLayoutResult = tableRenderer.layout(new LayoutContext(new LayoutArea(0, new Rectangle(ps.getWidth(), 1000))));
float totalHeight = tableLayoutResult.getOccupiedArea().getBBox().getHeight();
doc.add(table);
doc.close();
我无法确定问题出在哪里。
我在做什么错,我该如何有效地将表添加到特定页面?
你想修改现有PdfDocument?因为'Document doc = new Document(p.getDocument());'创建全新的PdfDocument。阅读此问题[如何在不创建新PDF的情况下更新PDF?](https://stackoverflow.com/questions/16081831/how-to-update-a-pdf-without-creating-a-new-pdf) – Sergey
所以你知道**表格必须放在现有PDF的第8页上?在这种情况下使用PdfStamper可能是一个好主意 – Jan
或者[iText - 将内容添加到现有PDF文件](https://stackoverflow.com/questions/3335126/itext-add-content-to-existing-pdf-file) 。 – Sergey