0

i tried using the android pdf library. Downloaded from https://github.com/jblough/Android-Pdf-Viewer-Library . Now when i open the pdf it is stuck .. saying pdf page is loading. ut nothing happens.

Here is what i am trying to do . I have created a class file called qbchem.java and second.java i have loaded the pdf file in my asset folder. I dont want any one to access these pdf files and that is why i have kept them in my asset folder.

qbchem.java

@
package com.sp.wisdomedutech11;

import java.io.File;

import android.app.Activity;
import android.app.ActionBar;
import android.app.Fragment; 
import android.content.ActivityNotFoundException;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
import android.os.Build;
import net.sf.andpdf.pdfviewer.PdfViewerActivity;


public class qbchem extends Activity {
ListView qbchemlv;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.qbchem);
    qbchemlv = (ListView) findViewById(R.id.qbchemlv1);
    String[] values = new String[] { "Chap-1 Basic Concepts", 
            "Chap-2 Atomic Structure",
            "Chap-3 Chemical Bonding",
            "Chap-4 Periodic Table"
           };
     ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
              android.R.layout.simple_list_item_1, android.R.id.text1, values);
     qbchemlv.setAdapter(adapter); 
     qbchemlv.setOnItemClickListener(new OnItemClickListener() {

         @Override
         public void onItemClick(AdapterView<?> parent, View view,
            int position, long id) {

          // ListView Clicked item index
          int itemPosition     = position;

          // ListView Clicked item value
          String  itemValue    = (String) qbchemlv.getItemAtPosition(position);
          if(itemValue.contentEquals("Chap-1 Basic Concepts")){
              try {
                  Intent intent = new Intent(qbchem.this, second.class);
                     intent.putExtra(PdfViewerActivity.EXTRA_PDFFILENAME, "file:///android_asset/chap_1_basic_concept.pdf");
                     startActivity(intent);

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

     }
});

}}

second.java

package com.sp.wisdomedutech11;

import java.io.File;

import android.app.Activity;
import android.app.ActionBar;
import android.app.Fragment;
import android.content.ActivityNotFoundException;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
import android.os.Build;
import net.sf.andpdf.pdfviewer.PdfViewerActivity;


public class second extends PdfViewerActivity {

@Override
public int getPreviousPageImageResource() {
// TODO Auto-generated method stub
return R.drawable.left_arrow;
}

@Override
public int getNextPageImageResource() {
// TODO Auto-generated method stub
return R.drawable.right_arrow;
}

@Override
public int getZoomInImageResource() {
// TODO Auto-generated method stub
 return R.drawable.zoom_in;
}

@Override
public int getZoomOutImageResource() {
  // TODO Auto-generated method stub
  return R.drawable.zoom_out;
}

@Override
public int getPdfPasswordLayoutResource() {
// TODO Auto-generated method stub
return R.layout.pdf_file_password;  
}

@Override
public int getPdfPageNumberResource() {
// TODO Auto-generated method stub
 return R.layout.dialog_pagenumber;
}

@Override
public int getPdfPasswordEditField() {
// TODO Auto-generated method stub
return R.id.etPassword;
}

@Override
public int getPdfPasswordOkButton() {
// TODO Auto-generated method stub
 return R.id.btOK;
}

@Override
public int getPdfPasswordExitButton() {
// TODO Auto-generated method stub
 return R.id.btExit;
}

@Override
public int getPdfPageNumberEditField() {
// TODO Auto-generated method stub
return R.id.pagenum_edit;
}}
sanam369
  • 1
  • 2

1 Answers1

0

I had had similar issues while trying to get a pdf reader.In your particular case, you cant get the direct location of your pdf from assets. The only thing that(might) work is copying this asset to some other location , and then using the 'file:///' after that.

This might help you copy the file : Copying a file from withing a apk to the internal storage

see this for copying too : https://stackoverflow.com/a/19555787/2670775

Community
  • 1
  • 1
harveyslash
  • 5,906
  • 12
  • 58
  • 111