Android PDF檔案閱讀方案
阿新 • • 發佈:2019-01-10
方案一:線上閱讀(使用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
compile‘com.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體積影響小。
缺點:相容不同機型時可能出現的不同的問題。
結論:建議使用