栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在现有的iText文档中添加封面/ PDF

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在现有的iText文档中添加封面/ PDF

假设我们有一个名为pages.pdf的文档,并且我们想添加封面hero.pdf作为本文档的封面。

方法1: 使用

PdfCopy

看一下AddCover1示例:

PdfReader cover = new PdfReader("hero.pdf");PdfReader reader = new PdfReader("pages.pdf");document document = new document();PdfCopy copy = new PdfCopy(document, new FileOutputStream("pages_with_cover.pdf"));document.open();copy.adddocument(cover);copy.adddocument(reader);document.close();cover.close();reader.close();

结果是一个文档,在这里您首先有封面,然后是文档的其余部分:pages_with_cover.pdf

方法2: 使用

PdfStamper

看一下AddCover2示例:

PdfReader cover = new PdfReader("hero.pdf");PdfReader reader = new PdfReader("pages.pdf");PdfStamper stamper = new PdfStamper(reader, new FileOutputStream("cover_with_pages.pdf"));stamper.insertPage(1, cover.getPageSizeWithRotation(1));PdfContentByte page1 = stamper.getOverContent(1);PdfimportedPage page = stamper.getimportedPage(cover, 1);page1.addTemplate(page, 0, 0);stamper.close();cover.close();reader.close();

在这种情况下,我们将获取原始文档,

pages.pdf
然后插入与封面相同页面尺寸的新页面1。然后
page1
,我们得到此信息,并将第一页的内容添加
hero.pdf
到该第一页中。结果是cover_with_pages.pdf

两种方法有什么区别?

使用

PdfCopy
,您可能会丢失一些在文档级别定义的属性(例如页面布局设置),但是保留了两个文件的交互功能。如果您想保留标签,表单字段等,可能需要设置一些参数,但是对于简单的PDF,不需要所有这些。

使用

PdfStamper
,您可以保留在文档级别定义的属性
pages.pdf
,但是会丢失封面的所有交互功能(如果有)。如果要将封面定义为工件,并且原始封面的页面边界很奇怪,则可能需要调整示例,但这会使我们讨论这个简单的答案太过分了。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/431073.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号