2014-09-08 2 views
0

나는 을 필요로하는 응용 프로그램을 작성 중입니다. 안드로이드 응용 프로그램에서을 열고 읽고 봅니다. 자산 폴더에 pdf 파일이 있습니다. 기본적으로 android는 pdf를 지원하지 않습니다.안드로이드로 PDF를 읽고 볼 수있는 방법은 무엇입니까?

PDF 파일을 열고 읽고 볼 때 사용되는 API가 있습니까? 이러한 파일은 Assets 폴더에 있습니다.

많은 노력을 기울이고 R & D를 많이 수행 한 후 약간의 해결책이 있지만 개의 검색어가 남아 있습니다..

나는 PdfViewer을 사용하여 안드로이드에 PDF를 표시하는 라이브러리입니다. 그리고 아래

MainActivity

public class MainActivity extends Activity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     Intent intent = new Intent(this, MyPdfViewerActivity.class); 
     intent.putExtra(PdfViewerActivity.EXTRA_PDFFILENAME, 
       "mnt/sdcard/sample.pdf"); 
     startActivity(intent); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     getMenuInflater().inflate(R.menu.activity_main, menu); 
     return true; 
    } 

} 

MyPdfViewerActivity 내 코드 쿼리가 있습니다

public class MyPdfViewerActivity extends PdfViewerActivity { 

    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; 
    } 
} 

그것은로드 PDF 페이지에 시간이 소요되며, 오는 더 출력이없는 . 에뮬레이터 enter image description here

이 문제를 해결하는 방법이 있습니까?

감사합니다.

+0

봐 : [http://stackoverflow.com/ 질문/14289156/pdf-viewer-api-for-android] (http://stackoverflow.com/questions/14289156/pdf-viewer-api-for-android) [http://stackoverflow.com/questions/11499942/android-code-to-implement-pdf-viewer](http://stackoverflow.com/questions/11499942/android-code-to-implement-pdf- 뷰어) [http : // stackoverflow.com/questions/13344304/android-pdf-reader] –

+1

[Android에서 앱 내에 PDF를 표시 하시겠습니까?] (http : // stackoverflow .com/questions/2456344/display-pdf-within-app-on-android) – Gattsu

답변

0

그건 상당히 문제입니다.

기본적으로 사용자 응용 프로그램을 사용하고 PDF 파일을 처리 할 수있는 것이 있는지 (예 : Adobe 판독기) 확인하기위한 목적 만 보내야합니다. 응용 프로그램에서 PDF 렌더링 할 어떤 이유로, 그 두 가지 주요 라이브러리가있는 경우

:

1

android-pdfview 라이브러리를 사용해보십시오. 그것은 아주 잘 작동합니다.

는 레이아웃에 PDFView 포함 :

<com.joanzapata.pdfview.PDFView 
    android:id="@+id/pdfView" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" /> 

로드 PDF 파일 : thise 게시물 innto

public class PDFViewActivity extends Activity implements OnPageChangeListener { 

    public static final String SAMPLE_FILE = "sample.pdf"; 

    public static final String ABOUT_FILE = "about.pdf"; 


    PDFView pdfView; 


    String pdfName = SAMPLE_FILE; 


    Integer pageNumber = 1; 




    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 

     setContentView(R.layout.activity_main); 

     pdfView =(PDFView)findViewById(R.id.pdfView); 

     pdfView.fromAsset(pdfName) 
     .defaultPage(1) 
     .showMinimap(false) 
     .enableSwipe(true) 
     .load(); 



    }  

    @Override 
    public void onPageChanged(int page, int pageCount) { 
     pageNumber = page; 
     setTitle(format("%s %s/%s", pdfName, page, pageCount)); 
    } 




} 
+0

보기 좋지만 분명하지 않으므로 자세하게 답변 해주십시오. –

+0

코드가 작동합니까? –

+0

예, 프로젝트에서 복사하여 붙여 넣습니다. – fida1989