itext7 - 将现有 PDF 的内容添加到新的 PDF
itext7 - adding content from existing PDF to a new one
我正在尝试将一些内容添加到我的 PDF 文档的第一页。这样做的合适方法是什么?
目前我的代码有效,但它在我的文档第一页之前添加(插入)了一个新页面。
可以在这里使用什么
PdfPage page = pdf.addNewPage(1, PageSize.A4);
因此我正在阅读的文档中的内容将作为内容添加到现有第一页,而不是作为新页面
public static void addContentToFirstPage(String inputFilePath,String filePath) throws IOException, DocumentException {
File inFile = new File(inputFilePath);
File outFile = new File(inputFilePath + "_numbering.pdf");
PdfDocument pdf = new PdfDocument(new PdfReader(inFile), new PdfWriter(outFile));
PdfDocument origPdf = new PdfDocument(new PdfReader(filePath));
PdfPage origPage = origPdf.getPage(1);
Rectangle orig = origPage.getPageSize();
PdfPage page = pdf.addNewPage(1, PageSize.A4);
PdfCanvas canvas = new PdfCanvas(page);
AffineTransform transformationMatrix = AffineTransform.getScaleInstance(
page.getPageSize().getWidth() / orig.getWidth(),
page.getPageSize().getHeight() / orig.getHeight());
canvas.concatMatrix(transformationMatrix);
PdfFormXObject pageCopy = origPage.copyAsFormXObject(pdf);
canvas.addXObject(pageCopy, 0, 0);
pdf.close();
origPdf.close();
// delete old file,rename new to old file
inFile.delete();
outFile.renameTo(new File(inputFilePath));
}
要将您的模板页面 origPage
标记到 pdf
的当前首页而不是新页面,只需替换
PdfPage page = pdf.addNewPage(1, PageSize.A4);
来自
PdfPage page = pdf.getPage(1);
现在 page
引用已经存在的第一页而不是新的第一页,您的进一步操作会随即添加模板页面。
我正在尝试将一些内容添加到我的 PDF 文档的第一页。这样做的合适方法是什么?
目前我的代码有效,但它在我的文档第一页之前添加(插入)了一个新页面。
可以在这里使用什么 PdfPage page = pdf.addNewPage(1, PageSize.A4);
因此我正在阅读的文档中的内容将作为内容添加到现有第一页,而不是作为新页面
public static void addContentToFirstPage(String inputFilePath,String filePath) throws IOException, DocumentException {
File inFile = new File(inputFilePath);
File outFile = new File(inputFilePath + "_numbering.pdf");
PdfDocument pdf = new PdfDocument(new PdfReader(inFile), new PdfWriter(outFile));
PdfDocument origPdf = new PdfDocument(new PdfReader(filePath));
PdfPage origPage = origPdf.getPage(1);
Rectangle orig = origPage.getPageSize();
PdfPage page = pdf.addNewPage(1, PageSize.A4);
PdfCanvas canvas = new PdfCanvas(page);
AffineTransform transformationMatrix = AffineTransform.getScaleInstance(
page.getPageSize().getWidth() / orig.getWidth(),
page.getPageSize().getHeight() / orig.getHeight());
canvas.concatMatrix(transformationMatrix);
PdfFormXObject pageCopy = origPage.copyAsFormXObject(pdf);
canvas.addXObject(pageCopy, 0, 0);
pdf.close();
origPdf.close();
// delete old file,rename new to old file
inFile.delete();
outFile.renameTo(new File(inputFilePath));
}
要将您的模板页面 origPage
标记到 pdf
的当前首页而不是新页面,只需替换
PdfPage page = pdf.addNewPage(1, PageSize.A4);
来自
PdfPage page = pdf.getPage(1);
现在 page
引用已经存在的第一页而不是新的第一页,您的进一步操作会随即添加模板页面。