iTextPDF可以读取多少文件大小?

时间:2012-12-26 11:16:57

标签: java android itextpdf

我在我的应用程序中有强制关闭,当我选择一个文件1(大小:33,016,510 - 不确定是否为字节或kb)但是当我尝试一个文件2(大小:604,612)时,它没有强制关闭。 iTextPDF可以读取多少文件大小?

file1:400-500页,有图像背景和图像,但文字都是突出显示所以意思是文字可以读取(这就是我如何确定PDF的内容是文字还是图像,正确我,如果我错了)。

file2:30-50页,有图像,没有背景。

我知道为什么强行关闭。

  1. 由于PDF文件的大小。
  2. The Code it self。
  3. PDF的内容。
  4. 我用来阅读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)
    

1 个答案:

答案 0 :(得分:0)

我用大型PDF文件解决了我的问题。我要做的不是阅读整个PDF文件,而是首先阅读50-100页。