2014-12-04 106 views
1

我有一些PDF需要提取文本 只有一个PDF是TrueType字体 并导致以下错误:PDFBOX字体的TrueType原因stripper.getText()错误

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版本解决了这个问题。

+2

fontbox和pdfbox jars的版本是否相同?在构建时通常会遇到'NoSuchMethodError'情况。 – mkl 2014-12-04 10:06:08

+0

哎呀,的确如此。我现在删除了我自己的答案。顺便说一句,谢谢你在这里的所有好的答案。我已经提高了他们中的很多人:-) – 2014-12-04 13:04:31

+0

@TilmanHausherr *感谢所有这里的好答案* - 其实我用这些问题潜入PDFBox并自己学习了一下。 * upvoted其中许多* - 非常感谢! – mkl 2014-12-04 13:28:10

回答

5

这不是一个大问题,但一些微小的失误

感谢MKL和蒂尔曼·豪舍尔

这只是构建路径问题

首先,我有我不知道的fontbox的多种版本。

只需再次检查并检查它!

如果别人有同样的错误,检查依赖

pdfbox-1.x.x.jar 
fontbox-1.x.x.jar 

他们需要的是一样的!

+1

请详细说明,例如添加一些文字,例如“我在构建路径中有几个版本”。我从经验中得知,这些小错误可能需要花费数小时的工作量:-( – 2014-12-05 09:23:00