【发布时间】:2015-02-02 03:49:12
【问题描述】:
我有一些 pdf 需要提取为文本 只有一个 pdf 是 truetype 并导致以下错误:
Exception in thread "main" java.lang.NoSuchMethodError: org.apache.fontbox.ttf.TrueTypeFont.getAdvanceWidth(I)I
at org.apache.pdfbox.pdmodel.font.PDTrueTypeFont.getFontWidth(PDTrueTypeFont.java:677)
at org.apache.pdfbox.pdmodel.font.PDSimpleFont.getFontWidth(PDSimpleFont.java:231)
at org.apache.pdfbox.util.PDFStreamEngine.processEncodedText(PDFStreamEngine.java:411)
at org.apache.pdfbox.util.operator.ShowText.process(ShowText.java:45)
at org.apache.pdfbox.util.PDFStreamEngine.processOperator(PDFStreamEngine.java:557)
at org.apache.pdfbox.util.PDFStreamEngine.processSubStream(PDFStreamEngine.java:268)
at org.apache.pdfbox.util.PDFStreamEngine.processSubStream(PDFStreamEngine.java:235)
at org.apache.pdfbox.util.PDFStreamEngine.processStream(PDFStreamEngine.java:215)
at org.apache.pdfbox.util.PDFTextStripper.processPage(PDFTextStripper.java:460)
at org.apache.pdfbox.util.PDFTextStripper.processPages(PDFTextStripper.java:385)
at org.apache.pdfbox.util.PDFTextStripper.writeText(PDFTextStripper.java:344)
at org.apache.pdfbox.util.PDFTextStripper.getText(PDFTextStripper.java:257)
我查看了api源代码,仍然无法通过它。 有什么我可以做的吗? 或者2.0版本解决了这个问题。
【问题讨论】:
-
您的 fontbox 和 pdfbox jar 的版本是否相同?
NoSuchMethodError情况通常会在构建时被捕获。 -
哎呀,确实。我现在已经删除了我自己的答案。顺便说一句,感谢这里所有的好答案。我已经对其中许多人投了赞成票 :-)
-
@TilmanHausherr 感谢这里提供的所有好答案 - 实际上,我使用这些问题深入研究了 PDFBox 并自己了解了一点 :)。 对他们中的许多人投了赞成票 - 非常感谢!
-
这真是我犯的愚蠢错误,我再次检查构建路径。在那里找到了多个版本的字体罐。非常感谢@mkl!
-
很高兴你找到它!请回答您自己的问题(以便将来对其他人有所帮助),或删除该问题。