首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PDFBox NPE加载字体

PDFBox NPE加载字体
EN

Stack Overflow用户
提问于 2016-10-03 12:13:18
回答 1查看 1.2K关注 0票数 0

我正在使用PDFBox从几个PDF文档中提取文本,在运行我的单元测试套件(通过gradle)时,我得到了由NullPointerException引起的间歇性故障--我现在的基本假设是,它是由试图同时将字体加载到字体字典缓存的多个线程造成的。

我知道,如常见问题中所述,PDFBox并不是threadsafe --但我从它和这里的讨论中得到的印象是,这与同时访问文档的多个线程特别相关,而且评论似乎表明,字体盒缓存应该是线程安全。

我在单元测试中遇到的例外是:

代码语言:javascript
复制
WARNING: Using fallback font 'LiberationSans-Bold' for 'Arial-BoldItalicMT'
  java.lang.NullPointerException:
  at org.apache.pdfbox.pdmodel.font.FontMapperImpl.getFont(FontMapperImpl.java:463)
  at org.apache.pdfbox.pdmodel.font.FontMapperImpl.findFont(FontMapperImpl.java:417)
  at org.apache.pdfbox.pdmodel.font.FontMapperImpl.getTrueTypeFont(FontMapperImpl.java:321)
  at org.apache.pdfbox.pdmodel.font.PDTrueTypeFont.<init>(PDTrueTypeFont.java:198)
  at org.apache.pdfbox.pdmodel.font.PDFontFactory.createFont(PDFontFactory.java:75)
  at org.apache.pdfbox.pdmodel.PDResources.getFont(PDResources.java:123)
  at org.apache.pdfbox.contentstream.operator.text.SetFontAndSize.process(SetFontAndSize.java:60)
  at org.apache.pdfbox.contentstream.PDFStreamEngine.processOperator(PDFStreamEngine.java:815)
  at org.apache.pdfbox.contentstream.PDFStreamEngine.processStreamOperators(PDFStreamEngine.java:472)
  at org.apache.pdfbox.contentstream.PDFStreamEngine.processStream(PDFStreamEngine.java:446)
  ...
Oct 03, 2016 12:21:24 PM org.apache.pdfbox.pdmodel.font.PDTrueTypeFont <init>
WARNING: Using fallback font 'LiberationSans-Bold' for 'Arial-BoldMT'
Oct 03, 2016 12:21:24 PM org.apache.pdfbox.pdmodel.font.PDTrueTypeFont <init>

我使用的是PDFBox版本2.0.2

以前有人见过这个吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-04 15:00:06

在2.0.4版的PDFBox库中已经修复了这个问题

原始票中的详细信息:https://issues.apache.org/jira/browse/PDFBOX-3521

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39831376

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档