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

标签 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));

    }

最佳答案

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

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

PdfPage page = pdf.getPage(1);

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

关于java - itext7 - 将现有 PDF 中的内容添加到新 PDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48397057/

相关文章:

java - 如何在运行时使用java代码执行脚本

java - 使用 Collections.sort 对字符串进行排序?

java - Android - 应用程序快捷方式的 Intent

itext7 - Itext 7 HtmlConverter 不能换行不包含空格字符的单词

.net - 什么是 itext 7 相当于 itext 5 中的 pdfstamper 类

c# - iTextsharp 7 : Rotating a Stamp or Annotation

java - 如何使用 iText 7 检查现有文档的 PDF/A 一致性?

java - 是否可以在replaceAll上使用字符串变量?

java - Java中逐行写入Json对象数组

java - 在 itext7 中将 html 转换为 pdf 时出错