Java 8 PDFbox не может получить текст PDF-файла - PullRequest
0 голосов
/ 20 ноября 2018

Я работаю над приложением в Java 8 для обработки текста из PDF-файлов.Я использую PDFbox версии 2.0.12 в проекте Maven.Я использую следующий метод для извлечения текста из нескольких PDF-файлов:

for(File file : fileEntry){
    PDDocument pdd = PDDocument.load(file);
    PDFTextStripper stripper = new PDFTextStripper();
    String text = stripper.getText(pdd);
    System.out.println(text);
}

Однако, в этом конкретном файле:

http://www.o -cha.net / english /cup / pdf / 29.pdf

Я получаю следующее исключение:

Exception in thread "main" java.lang.UnsupportedOperationException: TTF fonts do not have a CFF table
at org.apache.fontbox.ttf.OpenTypeFont.getCFF(OpenTypeFont.java:56)
at org.apache.pdfbox.pdmodel.font.PDCIDFontType0.<init>(PDCIDFontType0.java:136)
at org.apache.pdfbox.pdmodel.font.PDFontFactory.createDescendantFont(PDFontFactory.java:121)
at org.apache.pdfbox.pdmodel.font.PDType0Font.<init>(PDType0Font.java:192)
at org.apache.pdfbox.pdmodel.font.PDFontFactory.createFont(PDFontFactory.java:83)
at org.apache.pdfbox.pdmodel.PDResources.getFont(PDResources.java:146)
at org.apache.pdfbox.contentstream.operator.text.SetFontAndSize.process(SetFontAndSize.java:60)
at org.apache.pdfbox.contentstream.PDFStreamEngine.processOperator(PDFStreamEngine.java:848)
at org.apache.pdfbox.contentstream.PDFStreamEngine.processStreamOperators(PDFStreamEngine.java:503)
at org.apache.pdfbox.contentstream.PDFStreamEngine.processStream(PDFStreamEngine.java:477)
at org.apache.pdfbox.contentstream.PDFStreamEngine.processPage(PDFStreamEngine.java:150)
at org.apache.pdfbox.text.LegacyPDFStreamEngine.processPage(LegacyPDFStreamEngine.java:139)
at org.apache.pdfbox.text.PDFTextStripper.processPage(PDFTextStripper.java:391)
at org.apache.pdfbox.text.PDFTextStripper.processPages(PDFTextStripper.java:319)
at org.apache.pdfbox.text.PDFTextStripper.writeText(PDFTextStripper.java:266)
at org.apache.pdfbox.text.PDFTextStripper.getText(PDFTextStripper.java:227)

Я не уверен, но я считаю, что это потому, что PDF использует некоторыешрифт, с которым PDFbox не знаком.Я не уверен, что это так, потому что, насколько мне известно, метод getText класса PDFTextStripper должен игнорировать все стили.Документация гласит:

Этот класс возьмет документ в формате PDF и выделит весь текст и проигнорирует форматирование и т. Д.

Если это так, почемуя получаю это исключение?

Спасибо заранее.

...