android 打开pdf的几种方法

Intent传递文件路径, PDFView ,android-debug.aar

intent 传递

  1. Uri path = Uri.fromFile(file);
  2. Intent intent = new Intent(Intent.ACTION_VIEW);
  3. intent.setDataAndType(path, "application/pdf");
  4. intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
  5. try {
  6. startActivity(intent);
  7. }catch (ActivityNotFoundException e) {
  8. Toast.makeText(this, "No Application Available to View PDF",
  9. Toast.LENGTH_SHORT).show();
  10. }

这样会有个问题是通过第三方app打开 如果用户手机没有装能打开pdf文件的app 这个PDF就无法打开 用户体验不好

PDFView 在之前项目用了一下 通过自己写activity 和PDFView来打开pdf,缺陷打开pdf支持pdf编码不多 好像只支持UTF-8 而且打开界面后前几秒 画面跟打了马赛克一样,模糊

open_pdf.xml文件

  1. <?xml version="1.0"encoding="utf-8"?>
  2. <RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent">
  5. <com.joanzapata.pdfview.PDFView
  6. android:id="@+id/pdfView"
  7. android:layout_width="match_parent"
  8. android:layout_height="match_parent"/>
  9. </RelativeLayout>

java代码

  1. import android.app.Activity;
  2. import android.os.Bundle;
  3. import com.joanzapata.pdfview.PDFView;
  4. import com.joanzapata.pdfview.listener.OnPageChangeListener;
  5. import java.io.File;
  6. public class OpenPDFActivity extends Activity implements OnPageChangeListener {
  7. private PDFView pdfView;
  8. Integer pageNumber = 1;
  9. @Override
  10. protected void onCreate(Bundle savedInstanceState) {
  11. super.onCreate(savedInstanceState);
  12. setContentView(R.layout.open_pdf);
  13. pdfView = (PDFView) findViewById(R.id.pdfView);
  14. String path = getIntent().getStringExtra("PATH");//
  15. File file = new File(path);
  16. display(file, true);
  17. }
  18. private void display(File assetFileName, boolean jumpToFirstPage) {
  19. if (jumpToFirstPage) pageNumber = 1;
  20. pdfView.fromFile(assetFileName)
  21. .defaultPage(pageNumber)
  22. .onPageChange(this)
  23. .showMinimap(false)
  24. .enableSwipe(true)
  25. .load();
  26. }
  27. @Override
  28. public void onPageChanged(int page, int pageCount) {
  29. pageNumber = page;
  30. }
  31. @Override
  32. public void onBackPressed() {
  33. super.onBackPressed();
  34. }
  35. }

通过aar打开 (android studio)

在build.gradle

   compile(name: 'android-debug', ext: 'aar')
   java代码 
    点击下载arr文件
  1. public void skip(String path) {
  2. Intent intent = new Intent();
  3. intent.setClass(getApplicationContext(), MuPDFActivity.class);
  4. intent.setAction("android.intent.action.VIEW");
  5. File file = new File(path);
  6. intent.setData(Uri.fromFile(file));
  7. startActivity(intent);
  8. }

android 打开pdf文件相关推荐

  1. android存储pdf文件怎么打开,android打开pdf文件

    我们在工作中肯定有需要,加载pdf或者doc的地方,但是,android没有提供一个好的打开方法,我又想吐槽下,人家ios可以直接打开的.. 有2钟方法打开pdf.doc. 方法一: 利用Intent ...

  2. Android用PdfRenderer类开发打开pdf文件的功能

    PdfRenderer是Android官方用于开发打开pdf文件功能的类,今天介绍一下它的最基本的使用.Android官方有一个相关的Sample,项目名是PdfRendererBasic,大家也可以 ...

  3. Android下载并打开PDF文件

    1.下载PDF文件到本地 private void downFile(){String urlString = "http://14.215.72.79/file3.data.weipan. ...

  4. android本地xml文件怎么打开,android 打开本地文件

    首先要知道的是,Android 打开本地文件是根据类型打开的,也就是根据文件的 MIME 类型来确定 如果不知道是什么类型,那就是 : */* 类型匹配表: private static final ...

  5. Android实现打开本地文件,Android 打开本地文件(示例代码)

    Android 打开本地的文件,目前来说,其实很常见.而且现在有手机版的office了.查看office的全家桶就更加方便. 首先要知道的是,Android 打开本地文件是根据类型打开的,也就是根据文 ...

  6. 使用第三方应用打开pdf文件

    /*** android获取一个用于打开PDF文件的intent** @param path 要打开的文件的绝对路径* @return*/public Intent getPdfFileIntent( ...

  7. android 打开部分文件方法汇总整理

    总结打开文件的的方法代码: /*** 打开文件* @param file*/ private void openFile(File file){ Intent intent = new Intent( ...

  8. android 打开本地文件

    这个是别人的代码,自己忘了地址,只是给自己记录插个眼 获取本地文件 在MainActivity 中写方法 /*** android 打开本地文件* @param path 本地文件路径(带文件名)*/ ...

  9. uniapp通过url或base64打开pdf文件

    1.通过url打开pdf文件: //通过url打开pdf文件openPdfFileByUrl(pdfUrl: string) {uni.showLoading({title: "下载中,请稍 ...

  10. 打开PDF文件弹出阅读未加标签文档的解决方法

    打开PDF文件弹出阅读未加标签文档的解决方法 参考文章: (1)打开PDF文件弹出阅读未加标签文档的解决方法 (2)https://www.cnblogs.com/Tty725/p/3308065.h ...

最新文章

  1. vue 相同的id不合并_vue中key的作用
  2. 03-JDBC学习手册:JDBC中几个重要接口和异常处理
  3. cocos2d-x游戏实例(1)-视角跟随主角
  4. shrio的rememberMe不起作用
  5. blockUI应用到Asp.Net页面时服务器控件(Button等)失效的问题
  6. Vue+Vue-router+Vuex项目实战
  7. 关于STL的一些笔记
  8. OpenGL基础27:网格
  9. UIApplication keyWindow rootViewController 为 nil 的
  10. 【业务】GB4754T-2017国民经济行业分类
  11. Fortran入门教程(一)——引入篇
  12. Unity3D中隐藏与显示物体的方法
  13. 解决 cp: omitting directory ‘./dist’ ( 拷贝失败 )
  14. 在线取名应用!给你自己取个好听的网名吧!
  15. 监控 - Prometheus监控
  16. python一天学费多少_自学python一天的小项目实战
  17. win 7系统怎么看计算机配置,windows7系统怎么查看电脑配置
  18. 活动回顾丨研发效能度量线下沙龙圆满举办
  19. 微信小程序云开发:使用cms平台来创建json数组
  20. 顶会最佳论文奖得主:初入科研领域,如何正确做科研?

热门文章

  1. 数仓建模—数据资产管理
  2. 推荐算法架构3:精排
  3. itextpdf 给pdf文档添加图片
  4. pc端移动端布局有什么区别
  5. Flask开发 导入flask_uploads包时提示“IMPORTERROR: CANNOT IMPORT NAME ‘SECURE_FILENAME‘ FROM ‘WERKZEUG‘“
  6. t检验临界值表中的n是什么_t检验临界值分布表
  7. Nginx优化---防盗链--网页缓存--网页压缩--日志分割
  8. 欢雀HR员工管理系统,轻松搞定员工档案管理!
  9. 信息系统项目管理师和PMP对比
  10. 电脑版微信多开显示网络代理服务器,电脑版微信多开办法,超级简单,一看就会...