1. 程式人生 > >Android PDF檔案閱讀方案

Android PDF檔案閱讀方案

方案一:線上閱讀(使用Google doc支援來展示word,excel,pdf,txt)

WebView urlWebView = (WebView)findViewById(R.id.containWebView);
urlWebView.setWebViewClient(new AppWebViewClients());
urlWebView.getSettings().setJavaScriptEnabled(true);
urlWebView.getSettings().setUseWideViewPort(true);
urlWebView.loadUrl("http://docs.google.com/gview?embedded=true&url="
+ "YOUR_DOC_URL_HERE");

優點:無需伺服器和客戶端的額外部署工作,也不用下載到本地來進行展示
缺點:國內需要翻牆訪問(大多數APP估計能翻牆的少,因此也用的少)
結論:不建議使用

方案二:調起第三方支援 PDF 閱讀的應用

public void openPdfActivity(String fileUrl) {
    File file = new File(fileUrl);
    if (file.exists()) {
        Intent intent = new Intent(Intent.ACTION_VIEW);
        intent.addCategory(Intent.CATEGORY_DEFAULT);
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        Uri uri = Uri.fromFile(new
File(fileUrl)); intent.setDataAndType(uri, "application/pdf"); startActivity(intent); } }

結論:建議使用

方案三:整合第三方 PDF SDK,在 Native 頁面中閱讀

1、android-pdfview

compilecom.joanzapata.pdfview:android-pdfview:1.0.4@aar’
PDFView.fromFile(file)//設定pdf檔案地址
        .defaultPage(1)//設定預設顯示第1頁
        .onPageChange(this
)//設定翻頁監聽 .onLoad(this)//設定載入監聽 .onDraw(this)//繪圖監聽 .showMinimap(false)//pdf放大的時候,是否在螢幕的右上角生成小地圖 .swipeVertical(false)//pdf文件翻頁是否是垂直翻頁,預設是左右滑動翻頁 .enableSwipe(true)//是否允許翻頁,預設是允許翻 .load();

優點:載入快,不需要考慮手機的硬體的相容,可以展示本地PDF檔案,也可以展示Android中assets目錄中的PDF檔案
缺點:不支援線上預覽,引入到專案中後,APK體積增加12-15M左右。
結論:看個人愛好

2、mupdf
優點:相比android-pdfview實現的比較不錯。
缺點:Android 中整合麻煩,需要自行採用 NDK 開發進行庫的編譯。
結論:看個人愛好

方案四:整合第三方 JS PDF SDK,在 WebView 頁面中閱讀(website方式)

GitHub:https://github.com/QiuJay/PDFWebSite

優點:簡單(就直接 copy 一個目錄到 assets 目錄下就完成了整合)。
缺點:樣式需要H5來調整。
結論:建議使用

方案五:將 PDF 檔案轉換成 HTML 或者圖片等格式檔案

結論:不建議使用(功能單一)

方案六:基於騰訊瀏覽服務TBS,使用X5Webkit核心來展示

地址:http://www.jianshu.com/p/3f57d640b24d

優點:支援展示word,ppt,pdf,excel;體積小,對專案APK體積影響小。
缺點:相容不同機型時可能出現的不同的問題。
結論:建議使用