Android实现在线阅读PDF文件

介绍

最近项目有个需要,需要正在APP内在线阅读Office、PDF文件,要求不能下载、不能修改只能阅读。在查阅了相关的资料,主要参考该文章,发现Android实现解析Office文件有三种方式:

  1. 后台统一转换文档格式,安卓端只预览一种格式文档。
  2. 在安卓端完成文档转换
  3. 第三方付费产品中

本人选择了第一种方式实现:openoffice + jodconverter将office文档转换为pdf格式。具体方式百度很多教程。

Android 端实现

android端只要使用 PDFView 第三方库实现在线阅读,具体实现方式如下:

导入依赖

compile 'com.github.barteksc:android-pdf-viewer:3.1.0-beta.1'

核心代码

	       pdfView.fromStream(PDFIs)	// 已流的方式读取文件
                //.nightMode(true)   // 夜间模式
                //.enableAnnotationRendering(false)//呈现注释(例如注释,颜色或表单)
                /** 以下配置实现 ViewPage */
                .swipeHorizontal(true) //pdf文档翻页是否是垂直翻页,默认是左右滑动翻页
                .pageSnap(true)     ///捕捉页面到屏幕边界
                .autoSpacing(true)  //在屏幕上添加动态间距以适应每个页面
                .pageFling(true)    // 像viewPage 一样效果
                .enableSwipe(true)//是否允许翻页,默认是允许翻页
                .defaultPage(0) //开始页数
                .load();

注:3.1.0的依赖优化了像 ViewPage 一样翻页。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在 Android 中选取本地 PDF 文件并上传,可以使用以下步骤: 1. 添加文件读取权限到 AndroidManifest.xml 文件中: ``` <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> ``` 2. 在 Activity 中添加一个按钮或者其他触发事件的控件,用于打开文件选择器: ``` private static final int REQUEST_CODE = 1; private void chooseFile() { Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.setType("application/pdf"); startActivityForResult(intent, REQUEST_CODE); } ``` 3. 在 Activity 中实现 onActivityResult() 方法,获取用户选择的文件的 URI,并进行上传操作: ``` @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == REQUEST_CODE && resultCode == Activity.RESULT_OK) { Uri uri = data.getData(); if (uri != null) { try { InputStream inputStream = getContentResolver().openInputStream(uri); // 进行上传操作 } catch (FileNotFoundException e) { e.printStackTrace(); } } } } ``` 在以上代码中,首先定义了一个请求码 REQUEST_CODE,用于在 onActivityResult() 方法中判断返回的结果是否是我们发起的请求。在 chooseFile() 方法中,使用 Intent.ACTION_GET_CONTENT 打开文件选择器,并设置类型为 "application/pdf",这样只会显示 PDF 文件。在 onActivityResult() 方法中,获取用户选择的文件的 URI,并使用 getContentResolver().openInputStream(uri) 获取文件的输入流,可以使用该输入流进行上传操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值