在我的Android项目中,我想从pdf文件中提取纯文本。我设法做到了,尝试了 itext 和 pdfbox 库。无论使用哪种格式,从一页pdf文件中提取文本的过程都需要2-3分钟(!)。这不是模拟器,而是在Android 8.0上运行的Samsung Galaxy S7。
我试图在调试器中探索花费了这么长时间,但是我无法使用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内部?