Java - PDFBox включает в себя усеченное слово из файла - PullRequest
0 голосов
/ 13 декабря 2018

Я использую 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

Я не могу подтвердить, является ли это точной причиной проблемы.

...