Thursday, 14 March 2013

How to Read PDF files in Android?

Read PDF Files from Sdcard in Android

First Create one Android Project in Eclipse after that download PDFViewer.jar file from Internet and then add into project's build path.

After Create one Activity in this Project, Name is Second.java

Second.java

public class Second extends PdfViewerActivity {
   
    @Override
    public void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    }
   
    public int getPreviousPageImageResource() {
    return R.drawable.left_arrow;
    }
   
    public int getNextPageImageResource() {
    return R.drawable.right_arrow;
    }
   
    public int getZoomInImageResource() {
    return R.drawable.zoom_in;
    }
   
    public int getZoomOutImageResource() {
    return R.drawable.zoom_out;
    }
   
    public int getPdfPasswordLayoutResource() {
    return R.layout.pdf_file_password;
    }
   
    public int getPdfPageNumberResource() {
    return R.layout.dialog_pagenumber;
    }
   
    public int getPdfPasswordEditField() {
    return R.id.etPassword;
    }
   
    public int getPdfPasswordOkButton() {
    return R.id.btOK;
    }
   
    public int getPdfPasswordExitButton() {
    return R.id.btExit;
    }
   
    public int getPdfPageNumberEditField() {
    return R.id.pagenum_edit;
    }
}

After that Add below code into your project's main activity and change extends Activity to ListActivity in your java file.

First.java

public class First extends ListActivity {
   
    String[] pdflist;
    File[] imagelist;
    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    //setContentView(R.layout.main);
   
    File images = Environment.getExternalStorageDirectory();
    imagelist = images.listFiles(new FilenameFilter() {
    public boolean accept(File dir, String name) {
    return ((name.endsWith(".pdf")));
    }
    });
    pdflist = new String[imagelist.length];
    for (int i = 0; i < imagelist.length; i++) {
    pdflist[i] = imagelist[i].getName();
    }
    this.setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, pdflist));
    }
   
    protected void onListItemClick(ListView l, View v, int position, long id) {
    super.onListItemClick(l, v, position, id);
    String path = imagelist[(int) id].getAbsolutePath();
    openPdfIntent(path);
    }
   
    private void openPdfIntent(String path) {
    try {
    final Intent intent = new Intent(First.this, Second.class);
    intent.putExtra(PdfViewerActivity.EXTRA_PDFFILENAME, path);
    startActivity(intent);
    } catch (Exception e) {
    e.printStackTrace();
    }
    }
}

And Don't Forget to Add Second Activity in Android Manifest file.

Enjoy :--)

8 comments:

  1. how read assets floder pfd file

    ReplyDelete
  2. Can you Please send me source code of this project?
    I got error in it...
    My id-bkothari99@gmail.com

    ReplyDelete
  3. i got a error in onclick..help me..

    ReplyDelete
  4. i also got error when m click on file.......

    ReplyDelete
  5. Dear Sir,

    Thank you sir for this post. i am getting List Books from my mnt/sdcard. but when i click on any book it shows me error like this. [ http://pastebin.com/TUaVKrxt ].
    and it shows error on below two line from first.java class.
    " openPdfIntent(path);" //line no.53
    "final Intent intent = new Intent(First.this, Second.class);" //line no. 58

    PLEASE HELP ME AS SOON AS POSSIBLE.

    ReplyDelete
  6. This is an informative blog by which I have got that info which I really wanted to get.
    iPhone developer in Pakistan

    ReplyDelete
  7. HI Dipak,Please send me android custom pdf viewer source code it will will helpfull for me

    ReplyDelete