gpt4 book ai didi

java - 将现有 PDF 文档添加到打开的文档

转载 作者:行者123 更新时间:2023-11-29 05:08:07 25 4
gpt4 key购买 nike

使用 iText 5.5.5。我通过 PdfWriter 实例打开了 com.itextpdf.text.Document。在构建文档的各个阶段,我需要添加静态 PDF 页面。静态页面以 byte[] 的形式出现。

在关注 itextpdf.com 上的各种示例之后,我无法将他们的示例与我的用例相结合。这是代码:

Document trunk = new Document();
PdfWriter writer = PdfWriter.getInstance(trunk, getTrunkStream());
writer.setPageEvent(geTrunkPageEvent());
trunk.open();

....

PdfReader reader = new PdfReader(bytes);
// graft == my static content
Document graft = new Document(reader.getPageSizeWithRotation(1));
PdfCopy copy = new PdfCopy(graft, getTrunkStream());
graft.open();

int count = reader.getNumberOfPages();
for(int page = 0; page < count;) {
copy.addPage(copy.getImportedPage(reader, ++page));
}

copy.freeReader(reader);
reader.close();

代码编译和运行没有错误。但嫁接页面无法与主干页面一起出现。

最佳答案

阅读这个问题的答案 Read BLOB (PDF Content) from database and edit and output PDF ,更详细的描述

使用PdfContentByte保存要添加的PDF内容

 PdfContentByte cb = writer.getDirectContent(); 

使用 getImportedPage() 为要从另一个文档导入的每个页面创建一个 PdfImportedPage 页面对象,并使用 writer 添加页面使用 addTemplate():

trunk.newPage();
page = writer.getImportedPage(pdfReader, pagenumber);
cb.addTemplate(page, 0, 0);

确保关闭文档pdfReader

注意:如果您只想合并一堆文件,请不要使用此代码片段。您不应该这样做的原因在问题 How to merge documents correctly? 的答案中有解释。

关于java - 将现有 PDF 文档添加到打开的文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29684300/

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