2014-12-04 95 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