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

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值