当前位置: 首页 > 知识库问答 >
问题:

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

端木阳荣
2023-03-14

我正在尝试向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个答案

居焱
2023-03-14

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

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

通过

PdfPage page = pdf.getPage(1);

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

 类似资料:
  • 我需要添加一些文本内容的底部现有的。带有iText的pdf文档。我有一个工作方法,但新内容显示在左上角,与现有内容重叠: 如何“移动”最后一页底部的,而不是第一页的开头?我对iText不熟悉,令人惊讶的是,在网上找不到解决方案。

  • 问题内容: 我想对iText执行以下操作: (1)解析现有的PDF文件 (2)在文档的现有单页上添加一些数据(例如时间戳) (3)写出文件 我似乎无法弄清楚如何使用iText做到这一点。用伪代码可以做到这一点: Document document = reader.read(input); document.add(new Paragraph(“my timestamp”)); writer.wr

  • 问题内容: 我需要将SVG图形添加​​到PDF文件中。 使用iText7是否有可能? 使用iText5: 我在以下页面中发现了这一点: PdfPTable和PdfTemplate 有一种创建类似于Template的方法: 如何创建Graphics2D? 问题答案: 巧合的是,我们今天发布了SVG实现。我们目前尚不支持全部功能集,我们仍将在第二季度及以后的时间里进行开发,但是您已经可以使用它了。该工

  • 对于IText5,添加数字签名相当容易。其留档的链接是:http://developers.itextpdf.com/examples/security/digital-signatures-white-paper/digital-signatures-chapter-2 有人可以在ITEXT 7中共享文档链接吗?我试过各种方法,但都没有用。在网上找不到任何链接。我可以取消签名并检查签名,但不能添

  • 我在运行时用一个模板文件在itext7.pdfhtml中构建一个PDF。我想在生成的PDF中的每一页都添加一个页脚,该PDF有两页,但出于某种原因,页脚只出现在第二页。

  • 我读了很多关于SO的帖子,并搜索了很多解决方案,所有这些似乎都回避了我的特定问题。 是否有一种方法可以使用正确的页面大小将现有的PDF复制到新文档中? 谢谢。 更新 接受了布鲁诺的建议,我仔细检查了剪裁框和媒体框。我正在使用的PDF两者都有。裁剪框数组为 但是这样做会使“文本”向右和顶部移动太多,留下不均匀的边距。 我发现通过改变左下角的坐标,裁剪框,我可以移动文本。事实上,将裁剪框设置为40、4