Android阅读pdf元数据 - 内存问题

时间:2012-08-13 10:04:34

标签: java android pdf metadata

我目前正在构建一个在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文件的方法?

非常感谢任何帮助,谢谢。

1 个答案:

答案 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();
    }
}