1. 程式人生 > >Android 之 PDF 預覽

Android 之 PDF 預覽

需求:使用者點選PDF檔案,開啟檔案選中PDFDemo開啟,PDFDemo自動顯示檔案的名稱,點選檔案可選擇瀏覽工具。

要點:

  1. 在AndroidManifest.xml設定pdf型別監聽
  2. 從傳遞的pdf檔案路徑擷取檔名稱
  3. 選擇手機可以檢視pdf檔案的APP

效果圖展示:
1、使用者選擇PDFDemo開啟PDF檔案:

這裡寫圖片描述

2、PDFDemo接受PDF檔案的顯示頁面:

這裡寫圖片描述

3、點選圖片,選擇瀏覽PDF檔案的APP:

這裡寫圖片描述

要點程式碼塊:

在AndroidManifest.xml中定義:

<activity
            android:name="com.slightsnower.pdfdemo.PDFActivity"
android:label="@string/app_name" >
<intent-filter> <action android:name="android.intent.action.VIEW"/> <data android:mimeType="application/pdf"/> <category android:name="android.intent.category.DEFAULT" />
</intent-filter> </activity>

在PDFActivity中羅列出可以讀pdf檔案的APP的程式碼:

接受檔案傳遞的路徑的程式碼:

private void getPDF_FileName() {
        Intent intent = getIntent();
        if (intent == null) return;

        Uri uri = intent.getData();
        if (uri == null) {
            return
; } path = uri.getPath(); if (path == null) { Toast.makeText(getApplicationContext(), "無檔案傳遞", Toast.LENGTH_LONG).show(); } else { String fileName = path.substring(path.lastIndexOf("/") + 1, path.length()); file_name_tv.setText(fileName); } }

羅列出可以開啟pdf檔案的APP程式碼:

private Intent getPdfFileIntent(){
        Intent intent = new Intent("android.intent.action.VIEW");
        intent.addCategory("android.intent.category.DEFAULT");
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        Uri uri = Uri.fromFile(new File(path));
        intent.setDataAndType(uri, "application/pdf");

        return intent;

    }

引用:

Intent intent = getPdfFileIntent();
                startActivity(intent);

注:還有其他的一些方法瀏覽pdf:

  • 其實谷歌提供了webview線上瀏覽pdf檔案,噢,需要翻牆——wv.loadUrl("http://docs.google.com/gview?embedded=true&url="
    +path);
  • 使用第三方的pdf外掛