java - Itext 和 lowagie 停止工作 - NoSuchMethod getCharBBox(char)
问题描述
我的项目正在使用较旧的(lgpl 许可)iText,它停止工作。我已经恢复了最后的提交,但它没有帮助。错误是:
java.lang.NoSuchMethodError: 'int[] com.lowagie.text.pdf.BaseFont.getCharBBox(char)'
我浏览了反编译的文件,发现了那些(丢失的)方法……我真的不知道发生了什么。
这是我的 pom.xml:
</dependency>
<dependency>
<groupId>com.lowagie</groupId>
<artifactId>itext</artifactId>
<version>2.1.7</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.itextpdf/itextpdf -->
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.5.13.2</version>
</dependency>
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>core</artifactId>
<version>3.4.0</version>
</dependency>
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>javase</artifactId>
<version>3.4.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.itextpdf/itextpdf -->
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.5.0</version>
</dependency>
是的,有两个 itext 依赖项。但我不得不说,两天前这是有效的......
旧的 iText 是否发生了变化而破坏了它?
解决方案
你几乎自己回答了这个问题:
是的,有两个 itext 依赖项。
休战是您添加了三次iText !
三次将 iText 作为依赖项是没有意义的。如果您使用的是com.lowagie
iText,则删除其他内容,您的 pom.xml 应如下所示:
<dependency>
<groupId>com.lowagie</groupId>
<artifactId>itext</artifactId>
<version>2.1.7</version>
</dependency>
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>core</artifactId>
<version>3.4.0</version>
</dependency>
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>javase</artifactId>
<version>3.4.0</version>
</dependency>
如果您想使用更新的 iText,请使用openPDF。
推荐阅读
- java - 在字符串比较中使用 == 而不是 equals 不会被 Sonar 捕获
- latex - 将多个回归输出到 LaTeX 文档中
- java - 如何使用 Spark 更改所有数据集中的非数值?
- javascript - Express – 从外部 URL 下载文件
- java - 如何在activiti7的用户任务中获取表单属性?
- java - 在 anchorPane 中调整图形元素(网格窗格)的大小
- javascript - React Native,onPress 将文本值设置为状态
- bash - 在文件中查找文本,然后在找到时将单词放在同一行并插入到代码中
- javascript - 单击时跳转到位置(从其他 Vue 组件访问类)
- sql - SQL在行中查找并分组连续数字而不重复