gpt4 book ai didi

java - 提取 pdf 页面并插入到现有 pdf 中

转载 作者:行者123 更新时间:2023-12-01 10:57:03 24 4
gpt4 key购买 nike

我有下面的iText代码,我想将一页从src pdf文件复制到其他pdf文件(我有现有的PdfStamper,这里是mainPdfStamper )。

PdfReader srcReader = new PdfReader(new FileInputStream("source.pdf"));

File file = File.createTempFile("temporary", ".pdf");

PdfStamper pdfStamper = new PdfStamper(srcReader, new FileOutputStream(file));
PdfImportedPage importedPage = pdfStamper.getImportedPage(srcReader, 1);

// copying extracted page from src pdf to existing pdf
mainPdfStamper.getOverContent(1).addTemplate(importedPage, 10,10);
pdfStamper.close();
srcReader.close();

这不起作用,我不知道如何实现这一目标。简而言之,我想将源pdf中的一页复制到现有pdf中。请帮忙。

更新

下面的代码按照布鲁诺的回答工作。

    PdfReader reader2 = new PdfReader(srcPdf.getAbsolutePath());
PdfImportedPage page = pdfStamper.getImportedPage(reader2, 1);
stamper.insertPage(1, reader2.getPageSize(1));
pdfStamper.getUnderContent(1).addTemplate(page, 100, 100);
// Close the stamper and the readers
pdfStamper.close();
reader2.close();

最佳答案

请阅读文档,例如chapter 6 of iText in Action 。如果您转到第 6.3.4 节(“将页面插入现有文档”),您会发现 InsertPages示例。

只有在以下情况下才需要此代码:p 是指示要插入页面的页码,main_file 是主文件的路径,to_be_inserted 需要插入的文件的路径(dest 是结果文件的路径):

PdfReader reader = new PdfReader(main_file);
PdfReader reader2 = new PdfReader(to_be_inserted);
// Create a stamper
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest));
// Create an imported page to be inserted
PdfImportedPage page = stamper.getImportedPage(reader2, 1);
stamper.insertPage(p, reader2.getPageSize(1));
stamper.getUnderContent(i).addTemplate(page, 0, 0);
// Close the stamper and the readers
stamper.close();
reader.close();
reader2.close();

这只是组合两个文件中的页面的一种方法。您还可以使用 PdfCopy 来实现此目的。使用 PdfCopy 的优点是您将保留交互式页面的交互功能。使用 PdfStamper 时,您将丢失插入页面中存在的任何交互功能(例如所有链接)。

关于java - 提取 pdf 页面并插入到现有 pdf 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33582245/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com