com.itextpdf.text所属最后版本iText Jar及7.0.0版本Maven构建问题咨询
嘿,我来帮你搞定这两个iText的技术问题:
问题1:com.itextpdf.text包最后包含在哪个版本的iText Jar中?
这个包是iText 5.x系列的核心基础包,iText 7做了彻底的架构重构,完全抛弃了旧的包结构,改用com.itextpdf.kernel、com.itextpdf.layout等全新的包路径。
- 这个包最后出现在iText 5的最终稳定版本:5.5.13.3
- 从iText 7.0.0开始,你再也找不到
com.itextpdf.text这个包了,所有API都迁移到新的包体系下,旧代码如果直接升级到7.x需要大量修改。
问题2:Maven依赖7.0.0版本报错,想获取外部Jar使用
首先得说,你用的Maven坐标不对!iText 7采用了模块化拆分,和5.x的artifactId不一样——5.x用的是itextpdf,但7.x没有单一的这个artifact了,这就是你构建报错的核心原因。
正确的Maven依赖写法(针对7.0.0)
如果你想用Maven引入7.0.0,得根据需求引入对应的模块,比如最常用的核心模块:
<!-- 核心内核模块,处理PDF基础操作 --> <dependency> <groupId>com.itextpdf</groupId> <artifactId>itext-kernel</artifactId> <version>7.0.0</version> </dependency> <!-- 布局模块,处理文档排版、文本、表格等 --> <dependency> <groupId>com.itextpdf</groupId> <artifactId>itext-layout</artifactId> <version>7.0.0</version> </dependency>
要是想一次性引入常用的核心功能,也可以用聚合pom:
<dependency> <groupId>com.itextpdf</groupId> <artifactId>itext-core</artifactId> <version>7.0.0</version> <type>pom</type> </dependency>
获取外部Jar的方法
如果不想用Maven,直接下载Jar文件:
- 你可以找到iText官方提供的7.0.0版本各模块Jar,比如
itext-kernel-7.0.0.jar、itext-layout-7.0.0.jar等 - 别忘了还要下载它们的依赖Jar,比如
slf4j-api(iText 7依赖这个日志框架),否则运行时会报错 - 另外提一句,7.0.0是比较早期的版本,可能存在一些已知bug,如果不是必须用这个版本,建议考虑更新的稳定版,比如7.2.x系列
关于构建报错的补充
你之前用的itextpdf artifact在7.x版本中根本不存在,Maven在仓库里找不到对应的依赖,自然会报错无法生成Jar。换成上面的正确坐标,这个问题就能解决啦。
内容的提问来源于stack exchange,提问作者Raja Velpula
相关产品推荐
相关产品推荐

