0

ファイル1(サイズ: 33,016,510 - バイトかkbかは不明)を選択すると、アプリケーションで強制終了が発生しますが、ファイル2(サイズ: 604,612)を選択すると、強制終了しません。iTextPDF で読み取れるファイルサイズはどれくらいですか?

ファイル1:400〜500ページ、画像の背景と画像がありますが、テキストはすべてハイライト可能であるため、テキストを読み取ることができます(これは、PDFのコンテンツがテキストか画像かを判断する方法です。間違っている場合は修正してください).

file2: 30 ~ 50 ページ、画像あり、背景なし。

強制終了する理由がわかりました。

  1. PDFのファイルサイズが大きいためです。
  2. コード自体。
  3. PDFの内容です。

PDFを読むために使用するコード:

page_Content = PdfTextExtractor.getTextFromPage(
                    reader, 0, new SimpleTextExtractionStrategy());

ここで何が問題なのですか?

情報が不足している場合は、以下にコメントしてください。

例外:

12-26 19:20:19.026: E/AndroidRuntime(1119): FATAL EXCEPTION: main
12-26 19:20:19.026: E/AndroidRuntime(1119): java.lang.OutOfMemoryError
12-26 19:20:19.026: E/AndroidRuntime(1119):     at java.util.ArrayList.add(ArrayList.java:123)
12-26 19:20:19.026: E/AndroidRuntime(1119):     at com.itextpdf.text.pdf.PdfArray.add(PdfArray.java:269)
12-26 19:20:19.026: E/AndroidRuntime(1119):     at com.itextpdf.text.pdf.PdfReader.readArray(PdfReader.java:1608)
12-26 19:20:19.026: E/AndroidRuntime(1119):     at com.itextpdf.text.pdf.PdfReader.readPRObject(PdfReader.java:1657)
12-26 19:20:19.026: E/AndroidRuntime(1119):     at com.itextpdf.text.pdf.PdfReader.readDictionary(PdfReader.java:1588)
12-26 19:20:19.026: E/AndroidRuntime(1119):     at com.itextpdf.text.pdf.PdfReader.readPRObject(PdfReader.java:1624)
12-26 19:20:19.026: E/AndroidRuntime(1119):     at com.itextpdf.text.pdf.PdfReader.readDocObj(PdfReader.java:1143)
12-26 19:20:19.026: E/AndroidRuntime(1119):     at com.itextpdf.text.pdf.PdfReader.readPdf(PdfReader.java:511)
12-26 19:20:19.026: E/AndroidRuntime(1119):     at com.itextpdf.text.pdf.PdfReader.<init>(PdfReader.java:170)
12-26 19:20:19.026: E/AndroidRuntime(1119):     at com.itextpdf.text.pdf.PdfReader.<init>(PdfReader.java:159)
12-26 19:20:19.026: E/AndroidRuntime(1119):     at com.example.panalyzerdemo.InformationRetrieval.pdfFilePath(InformationRetrieval.java:54)
12-26 19:20:19.026: E/AndroidRuntime(1119):     at com.example.panalyzerdemo.MainActivity.onActivityResult(MainActivity.java:207)
12-26 19:20:19.026: E/AndroidRuntime(1119):     at android.app.Activity.dispatchActivityResult(Activity.java:3890)
12-26 19:20:19.026: E/AndroidRuntime(1119):     at android.app.ActivityThread.deliverResults(ActivityThread.java:3514)
12-26 19:20:19.026: E/AndroidRuntime(1119):     at android.app.ActivityThread.handleSendResult(ActivityThread.java:3560)
12-26 19:20:19.026: E/AndroidRuntime(1119):     at android.app.ActivityThread.access$2800(ActivityThread.java:128)
12-26 19:20:19.026: E/AndroidRuntime(1119):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066)
12-26 19:20:19.026: E/AndroidRuntime(1119):     at android.os.Handler.dispatchMessage(Handler.java:99)
12-26 19:20:19.026: E/AndroidRuntime(1119):     at android.os.Looper.loop(Looper.java:123)
12-26 19:20:19.026: E/AndroidRuntime(1119):     at android.app.ActivityThread.main(ActivityThread.java:4644)
12-26 19:20:19.026: E/AndroidRuntime(1119):     at java.lang.reflect.Method.invokeNative(Native Method)
12-26 19:20:19.026: E/AndroidRuntime(1119):     at java.lang.reflect.Method.invoke(Method.java:521)
12-26 19:20:19.026: E/AndroidRuntime(1119):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:878)
12-26 19:20:19.026: E/AndroidRuntime(1119):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:636)
12-26 19:20:19.026: E/AndroidRuntime(1119):     at dalvik.system.NativeStart.main(Native Method)
4

1 に答える 1

0

大きな PDF ファイルに関する問題を解決しました。私がやろうとしていることは、PDF ファイル全体を読むことではなく、最初に 50 ~ 100 ページを読むことです。

于 2013-01-10T09:11:26.920 に答える