gpt4 book ai didi

java - PDFBox NPE加载字体

转载 作者:行者123 更新时间:2023-12-02 03:19:18 25 4
gpt4 key购买 nike

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

我知道,as is stated in the FAQs , PDFBox 不是线程安全的 - 但我从中得到的印象和 this discussion here ,是专门与同时访问文档的多个线程相关的,并且注释似乎表明 fontbox 缓存应该是线程安全的。

我在单元测试中遇到的异常是:

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

有人遇到过这个吗?

最佳答案

从版本 2.0.4 开始,此问题已在 PDFBox 库中修复

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

关于java - PDFBox NPE加载字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39831376/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com