0

我目前正在构建一个在 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 文件即可获取元数据的方法?

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

4

1 回答 1

0

You can try fast PDFParse library. It optimized for performance & small memory consumption.

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();
    }
}
于 2013-10-16T20:53:24.197 回答