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

高速な 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();
    }
}
于 2013-10-16T20:53:24.197 に答える