Я использую Apache PDFBox 2.0.11 для извлечения текста из некоторых документов PDF с использованием класса PDFTextStripper
.Вот код, используемый для извлечения:
String pdfFilePath = "path/to/file.pdf";
PDFTextStripper pdfStripper = null;
PDDocument pdDoc = null;
COSDocument cosDoc = null;
try {
PDFParser parser = new PDFParser(new RandomAccessFile(new File(pdfFilePath), "r"));
parser.parse();
cosDoc = parser.getDocument();
pdfStripper = new PDFTextStripper();
pdDoc = new PDDocument(cosDoc);
String parsedText = pdfStripper.getText(pdDoc);
System.out.println(parsedText);
} catch (IOException e) {
e.printStackTrace();
}
Большая проблема, с которой я столкнулся, заключается в том, что PDFBox неправильно извлекает некоторые слова (в основном неуместные или полностью пропущенные символы).Особенно, когда речь идет о «La» (на фарси: لا ), оно почти наверняка идет не так.В качестве тестового примера я использовал файл PDF, содержащий несколько простых слов ( test-file.pdf ).В следующей таблице приведены исходные слова и выходные данные PDFBox:
Так что было бы весьма полезно, если бы кто-нибудь мог предоставить какой-то обходной путь для описанногопроблема.