2012-04-12 6 views
1

여러 Q/A를 읽은 후에도 현재 문제에 대한 적절한 답을 찾을 수 없습니다.로컬에 저장된 pdf 파일 열기 및 표시

내/res/raw 폴더에 저장되는 pdf 파일 (컴파일시 알려진)이 있습니다.

Intent i; 
i = new Intent(Intent.ACTION_VIEW); 
i.setDataAndType(file,"application/pdf"); 
startActivity(i); 

문제 :

InputStream is = getResources().openRawResource(R.raw.mypdf); 

그럼 I 장치의 바람직한 PDF 리더를 사용하여 (의도)에 PDF를 표시 할 :

제가 사용 파일의로드 시도 인 텐트가 '파일'유형을 사용하는 반면 PDF는 'InputStream'으로 읽히는 것입니다.

질문 : 어떻게하면 PDF 파일을 표시 할 수 있습니까? 즉 InputStream을 어떻게 표시 할 수 있습니까? 또는 새 File()을 사용하여 열 수 있도록 PDF 파일을 어떻게 저장할 수 있습니까?

+0

의 사용 가능한 복제 (레이아웃이 추가를 http://stackoverflow.com/questions/2456344/display-pdf-within-app-on-android) –

답변

1

이를 TRY .. 자산 폴더에
// 장소 PDF 그냥

Uri file= Uri.parse("file:///android_asset/mypdf.pdf"); 
    String mimeType = MimeTypeMap.getSingleton().getMimeTypeFromExtension(MimeTypeMap.getFileExtensionFromUrl(file.toString())); 

try{ 
    Intent i; 
    i = new Intent(Intent.ACTION_VIEW); 
    i.setDataAndType(file,mimeType); 
    startActivity(i); 

}catch (ActivityNotFoundException e) { 
        Toast.makeText(this, 
         "No Application Available to fiew this file type", 
         Toast.LENGTH_SHORT).show(); 
       } 
+0

pls 무슨 일이 일어날 지 알려주 .. – vnshetty

+0

그것은 ActivityNotFoundException을 throw합니다. 또한 String mimeType은 비어 있습니다 (Toast 사용). 확장이 인식되지 않는 것 같습니다. – ThomasKJDK

+0

좋아요 ... 문제는 장치에 pdf 파일을 읽는 응용 프로그램이 없다는 것입니다. 어도비 리더를 설치하고 다시 시도하십시오 ... – vnshetty

1

당신이 유에서 원하는 whereever이 코드는 당신의 PDF가 표시됩니다 joanzapata.pdfview

외부 (extern) 라이브러리를 사용할 수 있습니다 시도하기 위해



    private PDFView pdfview; 
    pdfview = (PDFView) findViewById(R.id.pdfview); 
    File file = new File(filepath); 
    pdfview.fromFile(file) 
        .defaultPage(1) 
        .showMinimap(false) 
        .enableSwipe(true) 
        .onLoad(this) 
        .onPageChange(this) 
        .load(); 


또는 경우 레이아웃 파일은 컴파일 타임에 알려진 u는 자산 폴더에 PDF가있다 [? 안드로이드 응용 프로그램 내에서 PDF 표시]



    private PDFView pdfview; 
    pdfview = (PDFView) findViewById(R.id.pdfview); 
    pdfview.fromAsset(pdfName) 
        .defaultPage(1) 
        .showMinimap(false) 
        .enableSwipe(true) 
        .onLoad(this) 
        .onPageChange(this) 
        .load(); 


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