Android打开pdf文件

项目中有个阅读pdf的需求,总结下几种方案

方案一:采用GoogleDocs

优势:

  • 非常简单,而且可以直接通过webview打开线上pdf(不要忘记开启网络权限)
1
2
3
4
5
6
7
@SuppressLint("SetJavaScriptEnabled")
public void setDocumentPath(final String path) {
    WebView webView = (WebView) findViewById(R.id.webview);
    webView.getSettings().setJavaScriptEnabled(true);
    webView.getSettings().setPluginsEnabled(true);
    webView.loadUrl("https://docs.google.com/viewer?url=http://www.selab.isti.cnr.it/ws-mate/example.pdf");
}

缺点:

  • 国内访问google你懂的

当然也有解决方案:

  • 可以在自己的服务器做一个代理

方案二:将pdf的Intent抛出

优势:

  • 也很简单,目前大部分Android设备貌似都有pdf阅读器
1
2
3
4
5
6
7
8
9
10
11
File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath() +"/"+ filename);
Intent target = new Intent(Intent.ACTION_VIEW);
target.setDataAndType(Uri.fromFile(file),"application/pdf");
target.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);

Intent intent = Intent.createChooser(target, "Open File");
try {
    startActivity(intent);
} catch (ActivityNotFoundException e) {
    // Instruct the user to install a PDF reader here, or something
}

缺点:

  • 不能在应用内打开,如果用户手机没有pdf阅读器就不行了

方案三:使用Android PdfRenderer

优势:

  • 应用内集成

缺点:

  • 不能滚动,只能单页,操作不方便

方案四:集成三方pdf sdk

优势:

  • 应用内集成,有现成解决方案

推荐三方sdk:

缺点:

  • 应用包会变大,三方出现问题的话,不好调试

评论

Copyright © 2022 pangff 京ICP备14050056号-1 Design credit: Shashank Mehta