Android的iText的文本提取 [英] Android iText text extraction

查看:139
本文介绍了Android的iText的文本提取的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好我有一个问题,使这个运行在Android中,但没有问题,当我运行它在Java。

Guys i'm having a problem making this run in android but no problems when i run it in java.

 public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);   
    tv = (TextView) findViewById(R.id.txtview);
    Button bt = (Button) findViewById(R.id.button1);
    am = this.getAssets();
    bt.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            // do something when the button is clicked
            try {
                parsePdf("android.resource://com.example.panalyzer_v1/raw/resume.pdf","android.resource://com.example.panalyzer_v1/raw/resume.txt");
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
          }
      }
    );
}

public void parsePdf(String pdf, String txt) throws IOException {
    PdfReader reader = new PdfReader(pdf);
    PrintWriter out = new PrintWriter(new FileOutputStream(txt));
    for (int i = 1; i <= reader.getNumberOfPages(); i++) {
        out.println(PdfTextExtractor.getTextFromPage(reader, i));
    }
    out.flush();
    out.close();
}

这code将提取的PDF全文,并在一个文本文件传输,但我不知道是否安卓能做到这一点。 我想,在这里我的问题是filepathing: parsePdf(资产/ Resume.pdf,财产/ Resume.txt); 我不能让它正常工作

This code will extract the whole text in the PDF and transfer it in a text file but I do not know if Android can do that. I think my problem here is the filepathing: parsePdf("assets/Resume.pdf","assets/Resume.txt"); I can't make it work.

我已经改变了路径,但错误没有得到解决。我调试它,我仍然有一个错误:

I have changed the pathing but the error is not solved. I debugged it and i still got an error:

10-22 20:16:13.850: E/AndroidRuntime(657): FATAL EXCEPTION: main
10-22 20:16:13.850: E/AndroidRuntime(657): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.panalyzerdemo/com.example.panalyzerdemo.MainActivity}: java.lang.NullPointerException
10-22 20:16:13.850: E/AndroidRuntime(657):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
10-22 20:16:13.850: E/AndroidRuntime(657):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
10-22 20:16:13.850: E/AndroidRuntime(657):  at android.app.ActivityThread.access$2300(ActivityThread.java:125)
10-22 20:16:13.850: E/AndroidRuntime(657):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
10-22 20:16:13.850: E/AndroidRuntime(657):  at android.os.Handler.dispatchMessage(Handler.java:99)
10-22 20:16:13.850: E/AndroidRuntime(657):  at android.os.Looper.loop(Looper.java:123)
10-22 20:16:13.850: E/AndroidRuntime(657):  at android.app.ActivityThread.main(ActivityThread.java:4627)
10-22 20:16:13.850: E/AndroidRuntime(657):  at java.lang.reflect.Method.invokeNative(Native Method)
10-22 20:16:13.850: E/AndroidRuntime(657):  at java.lang.reflect.Method.invoke(Method.java:521)
10-22 20:16:13.850: E/AndroidRuntime(657):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
10-22 20:16:13.850: E/AndroidRuntime(657):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
10-22 20:16:13.850: E/AndroidRuntime(657):  at dalvik.system.NativeStart.main(Native Method)
10-22 20:16:13.850: E/AndroidRuntime(657): Caused by: java.lang.NullPointerException
10-22 20:16:13.850: E/AndroidRuntime(657):  at com.example.panalyzerdemo.MainActivity.onCreate(MainActivity.java:36)
10-22 20:16:13.850: E/AndroidRuntime(657):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
10-22 20:16:13.850: E/AndroidRuntime(657):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
10-22 20:16:13.850: E/AndroidRuntime(657):  ... 11 more
10-22 20:16:16.831: I/Process(657): Sending signal. PID: 657 SIG: 9

我知道这个问题,这是 PdfReader读卡器=新PdfReader(PDF); 。我得到的路径错了吗?

i know the problem and it is PdfReader reader = new PdfReader(pdf);. Did i get the pathing wrong?

PS:我是新手,当涉及到调试。请纠正我如果错了调试报告。

PS:I am a newbie when it comes to debugs. please correct me if its the wrong debug report.

感谢你。

推荐答案

有3的解决方案,你可以试试。

There are 3 solutions that you can try.

    而不是把资产的文件
  1. 文件夹放在原始文件夹下的资源。并使用以下路径引用它。 android.resource:// [your_package_name] /raw/Resume.pdf

  1. Instead of putting the file in assets folder put in a raw folder under res. And use the following path to refer it. "android.resource://[your_package_name]/raw/Resume.pdf"

资产文件夹路径应该是这样的给 文件:///android_asset/Resume.pdf

Asset folder path should be given like this file:///android_asset/Resume.pdf

可以这样获得 Environment.getExternalStorageDirectory();

Instead of putting the file in assets folder put it in SD Card and SD card root path can be obtained like this Environment.getExternalStorageDirectory();

这篇关于Android的iText的文本提取的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆