如何在android中使用itext库阅读pdf

时间:2011-01-04 09:24:47

标签: android itext

我是android世界的新手。我厌倦了使用eclipse IDE创建一个android项目,其中我尝试在itext库的帮助下阅读pdf文件。 这个pgm没有显示任何输出。请告诉我如何更正代码,以便我可以从存储在项目的Assets文件夹中的pdf文件中提取文本。

程序代码如下:

public class hello extends Activity {
    /** Called when the activity is first created. */
    public static final String LOG_TAG="Fifth";
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        AssetManager assetManager =getAssets();
        InputStream istr = null;
        PdfReader reader=null;
        String str=null;
        int n=0;
        try {
            istr =(InputStream) assetManager.open("FirstPdf");


             reader=new PdfReader(istr);
             n=reader.getNumberOfPages();
            Log.v(LOG_TAG,"n value:" +n);
         str=reader.getPageContent(2).toString();
        }
        catch (Exception e)
        {
            e.printStackTrace();
        } 

        TextView tv = new TextView(this);
        tv.setText(n);
        setContentView(tv);
    }
}

此致 托马斯

2 个答案:

答案 0 :(得分:4)

试试这个

公共类readPDF扩展了Activity {

/** Called when the activity is first created. */

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    AssetManager assetManager =getAssets();
    InputStream istr = null;
    PdfReader reader=null;
    String str=null;
    int n=0;
    try {
        istr = this.getResources().openRawResource(R.raw.internals);

         reader=new PdfReader(istr);
         n=reader.getNumberOfPages();
         System.out.println("String"+str);
        Log.v("LOG:","n value:" +n);
     str=reader.getPageContent(2).toString();

    }
    catch (Exception e)
    {
        e.printStackTrace();
    } 

    TextView tv = (TextView)findViewById(R.id.hellotxt);
    tv.setText(String.valueOf(n));

}

}

答案 1 :(得分:2)

简短的回答者

不支持!

长答案

Android的运行时不是JME。 iText从未首先移植到JME。

话虽如此,有几个iText-> Android端口浮出水面。但这只是由一些知识渊博的个人完成的,他们已经撕掉了很大一部分,所以他们不必将Everything移植到子集的一部分加上一些其他东西,即Android Runtime。 / p>

据我所知,iText Proper(整件事)的端口是In The Works,但不知道它是否会去任何地方,或者当人们能够得到它时。