Android: извлечение текста из PDF очень медленно - PullRequest
0 голосов
/ 12 октября 2018

В моем проекте Android я хотел бы извлечь простой текст из файла PDF.Мне удалось это сделать, я попробовал itext , а также библиотеку pdfbox .Независимо от того, какой из них используется, процесс извлечения текста из одностраничного файла PDF занимает 2-3 минуты (!).И это не симулятор, а Samsung Galaxy S7 на Android 8.0.

Я пытался исследовать в отладчике, что занимает так много времени, однако с помощью отладчика Android Studio я не смог этого сделать, иногда точки останова не работают, стек вызовов не отображался, когда программа была приостановлена, или программа завершаетсяВнезапный после паузы ...

Код запускается в JobIntentService:

public class GetMenuService extends JobIntentService {
...

    @Override
    protected void onHandleWork(Intent intent) {
        try {
            PdfReader reader = new PdfReader(new File(getFilesDir(), MENU_FILENAME).getPath());
            int n = reader.getNumberOfPages();
            for (int i = 0; i <n ; i++) {
                parsedText   = parsedText+ PdfTextExtractor.getTextFromPage(reader, i+1).trim()+"\n"; //Extracting the content from the different pages
            }
            System.out.println(parsedText);
            reader.close();
        } catch (Exception e) {
             System.out.println(e);
        }
        ...        
    }
}

Для повышения производительности необходимо знать, что является причиной проблемы.Библиотека такая медленная?Вам не хватает оптимизации сборки в Android Studio?Или это потому, что код находится внутри JobIntentService?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...