Я использую PDFBox для извлечения слов из файла PDF и вставки в таблицу в MYSQL.
Это мой фрагмент кода:
String lines[] = text.split("\\r?\\n");
for (String line : lines) {
String[] words = line.split(" ");
preparedStatement = con1.prepareStatement(sql);
int i=0;
for (String word : words) {
// check if one or more special characters at end of string then remove OR
// check special characters in beginning of the string then remove
// insert every word directly to table db
word = word.replaceAll("([\\W]+$)|(^[\\W]+)", "");
preparedStatement.setString(1, path1);
preparedStatement.setString(2, word);
System.out.println("Token: " +word);
preparedStatement.executeUpdate();
}
}
preparedStatement.close();
Код работает нормально, но есть кое-что странное, что я заметил, например, если Barcode
- это слово в файле, оно сохраняется втаблица как 'Barcode'
, а также 'arcode'
, где оно усекает слово.Мне нужно только слово 'Barcode'
Кроме того, это только часть, некоторые другие слова, такие как database
, будут иметь database
и atabase
в таблице и т. Д.
Другие файлы PDFКажется, что я бежал правильно, чтобы извлечь слова, но не этот файл.Я также заметил, что когда я проиндексировал этот файл, он выдает предупреждение:
Dec 13, 2018 4:40:08 PM org.apache.pdfbox.pdmodel.font.PDCIDFontType2 <init>
INFO: OpenType Layout tables used in font Times New Roman,Bold are not implemented in PDFBox and will be ignored
Dec 13, 2018 4:40:08 PM org.apache.pdfbox.pdmodel.font.PDCIDFontType2 <init>
INFO: OpenType Layout tables used in font Times New Roman,BoldItalic are not implemented in PDFBox and will be ignored
Dec 13, 2018 4:40:08 PM org.apache.pdfbox.pdmodel.font.PDCIDFontType2 <init>
INFO: OpenType Layout tables used in font Times New Roman are not implemented in PDFBox and will be ignored
Я не знаю, является ли это предупреждение причиной или полезно в любом случае.
Что происходитвключено?
РЕДАКТИРОВАТЬ:
Я запускаю System.out.println(word)
, чтобы посмотреть, какие слова напечатаны на моей консоли, и оно включает в себя database
и слово, которое мне не нужно atabase
,Я не знаю, почему он так себя ведет.Еще одна вещь, которую я могу заподозрить, заключается в том, что этот файл PDF изначально повернут на 90 градусов.Так что это может испортить PDFBox.
Из моих результатов видно, что те "слова", которых там не должно быть, существуют в виде слов внутри изображения в файле.Вот скриншот того, о чем я говорю: ![Screenshot](https://i.stack.imgur.com/FXKAk.png)
Я не могу подтвердить, является ли это точной причиной проблемы.