代码之家  ›  专栏  ›  技术社区  ›  slamek10

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

  •  0
  • slamek10  · 技术社区  · 7 年前

    我正在尝试将一些内容添加到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 回复  |  直到 7 年前
        1
  •  1
  •   mkl    7 年前

    在模板页上盖章 origPage 当前的第一页,共页 pdf 只需更换

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

    通过

    PdfPage page = pdf.getPage(1);
    

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