iText 7调用HtmlConverter.convertToPdf转换PDF报错问题求助
iText 7 HTML转PDF报错问题解决方案
问题根源
你遇到的两类NoClassDefFoundError报错都是iText 7核心包与pdfHTML(html2pdf)附加组件版本不匹配导致的类加载异常,iText官方对不同版本的pdfHTML有严格的配套核心版本要求,版本不匹配就会出现对应类缺失的问题。
版本适配规则
- html2pdf 3.0.4 必须搭配iText 7核心包 7.1.16 及以上版本,你当前使用的7.1.15、7.1.14版本都低于要求,缺失对应新增类因此触发报错
- 若要继续使用iText 7.1.15,可将html2pdf版本降低到3.0.3
- 若要继续使用html2pdf 3.0.4,将所有iText 7核心依赖(kernel、layout、io等)统一升级到7.1.16即可解决问题
参考依赖配置(Maven)
<!-- 7.1.16核心包 + 3.0.4 html2pdf 稳定适配组合 --> <dependency> <groupId>com.itextpdf</groupId> <artifactId>kernel</artifactId> <version>7.1.16</version> </dependency> <dependency> <groupId>com.itextpdf</groupId> <artifactId>layout</artifactId> <version>7.1.16</version> </dependency> <dependency> <groupId>com.itextpdf</groupId> <artifactId>html2pdf</artifactId> <version>3.0.4</version> </dependency>
通用排查思路
- 检查项目中所有groupId为
com.itextpdf的依赖版本号是否完全统一,禁止不同版本的iText组件混引 - 执行
mvn dependency:tree命令查看依赖树,排查是否存在其他依赖间接引入的低版本iText包,如有冲突将低版本包排除即可 - 确认项目lib目录没有手动导入的不同版本iText jar包
内容的提问来源于stack exchange,提问作者kallada
相关产品推荐
相关产品推荐

