我目前正在构建一个在ListView中显示一组pdf文件的android应用程序。而不是只显示文件名我想从pdf的元数据中获取标题并在列表中显示,如果文件没有标题集,那么只需使用文件名。我正在使用iText atm,这就是我所拥有的:
File[] filteredFiles = root.listFiles(filter);
for (int i=0;i<filteredFiles.length;i++) {
try {
File f = filteredFiles[i];
PdfReader reader = new PdfReader(f.getAbsolutePath());
String title = reader.getInfo().get("Title");
reader.close();
//Do other stuff here...
} catch (Exception e) {
e.printStackTrace();
}
}
这很好用,它可以获取我想要的数据,但是它的速度很慢。此外,如果文件超过2MB,有时我会遇到内存崩溃。有没有更好的方法呢?也许是一种获取元数据而无需实际打开pdf文件的方法?
非常感谢任何帮助,谢谢。
答案 0 :(得分:0)
您可以尝试快速PDFParse库。它针对性能和性能进行了优化小内存消耗。
File[] filteredFiles = root.listFiles(filter);
for (int i=0;i<filteredFiles.length;i++) {
try {
File f = filteredFiles[i];
PDFDocument reader = new PDFDocument(f.getAbsolutePath());
String title = reader.getDocumentInfo().getTitle();
reader.close();
//Do other stuff here...
} catch (Exception e) {
e.printStackTrace();
}
}