方案一:在线阅读(使用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体积影响小。
缺点:兼容不同机型时可能出现的不同的问题。
结论:建议使用