Eclipse使用PDFBox提示HELVETICA无法解析或不是字段如何解决
问题原因
你遇到的cannot be resolved or is not a field报错核心是PDFBox版本不匹配,同时你的代码还存在页码索引错误问题,具体解决方法如下:
1. 修复字体调用报错
首先确认你导入的所有PDFBox相关Jar包大版本完全统一,不能2.x和3.x版本混用:
- 若使用PDFBox 2.x版本:你的字体调用写法本身是正确的,刷新项目依赖即可:
- 右键Eclipse对应项目 → 点击
Refresh刷新 - 顶部菜单栏选择
Project→Clean清理缓存后重新编译项目 - 若为Maven项目,右键项目 →
Maven→Update Project更新依赖
- 右键Eclipse对应项目 → 点击
- 若使用PDFBox 3.x版本:内置字体常量的调用方式有改动,需要追加
.get()方法,将代码中对应行修改为:contentStream.setFont(PDType1Font.HELVETICA.get(), 14);
2. 修复页码索引报错
PDDocument的页面索引从0开始计数,你只添加了1个页面,调用getPage(1)后续运行会直接抛出索引越界异常,将对应行修改为:
PDPage page = doc.getPage(0);
额外校验
确认你的依赖中同时包含同版本的pdfbox.jar和fontbox.jar,两个包缺一不可,否则也会出现类/字段找不到的问题。
内容的提问来源于stack exchange,提问作者A. O'Mary
相关产品推荐
相关产品推荐

