itext7 - 将现有PDF中的内容添加到新内容中

时间:2018-01-23 08:20:40

标签: java itext7

我正在尝试将我的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));

    }

1 个答案:

答案 0 :(得分:1)

要将模板页origPage标记到pdf的当前第一页而不是新页面,只需替换

PdfPage page = pdf.addNewPage(1, PageSize.A4);

通过

PdfPage page = pdf.getPage(1);

现在page引用已存在的第一页而不是新页面,您的进一步操作会在其上添加模板页面。