关于Android 在线预览PDF文件
本篇文章大部分为转载内容,不过最后有我自己使用后的小总结,原文地址:https://www.jianshu.com/p/9e3ff8385e6f
Android PdfViewer:
项目地址: https://github.com/barteksc/AndroidPdfViewer
功能很强大, 使用也比较广, 亲测可以使用.
唯一的缺点 :添加到项目中 会使apk增加16M, 这是最不能接受的, 故弃用.
PdfViewPager:
项目地址: https://github.com/voghDev/PdfViewPager
可加载assets/SD卡/URL(在线预览) ,(ps: 我目前就是使用的此框架)
优点: 使用比较方便, 也不大
使用:
1.依赖
compile 'es.voghdev.pdfviewpager:library:1.0.3'
2.xml布局(可根据自己项目,增减)
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <RelativeLayout android:id="@+id/rl_root" style="@style/title_style"> <ImageView android:id="@+id/iv_back" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_centerVertical="true" android:paddingLeft="@dimen/value15" android:src="@drawable/icon_back" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:text="资料详情" android:textColor="@color/color_white" android:textSize="16sp" /> </RelativeLayout> <RelativeLayout android:id="@+id/remote_pdf_root" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@id/rl_root"> <es.voghdev.pdfviewpager.library.PDFViewPager android:id="@+id/pdfViewPager" android:layout_width="match_parent" android:layout_height="match_parent" /> </RelativeLayout> <ProgressBar android:id="@+id/pb_bar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:layout_gravity="center" />
</RelativeLayout>
3.Activity(有注释)
public class PDFDatabaseActivity extends BaseActivity implements DownloadFile.Listener { private RelativeLayout pdf_root; private ProgressBar pb_bar; private RemotePDFViewPager remotePDFViewPager; private String mUrl = "http://partners.adobe.com/public/developer/en/xml/AdobeXMLFormsSamples.pdf"; private PDFPagerAdapter adapter;private ImageView iv_back; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_database); initView(); setDownloadListener(); } protected void initView() { pdf_root = (RelativeLayout) findViewById(R.id.remote_pdf_root); pb_bar = (ProgressBar) findViewById(R.id.pb_bar); iv_back = (ImageView) findViewById(R.id.iv_back); iv_back.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { finish(); } }); } /*设置监听*/ protected void setDownloadListener() { final DownloadFile.Listener listener = this; remotePDFViewPager = new RemotePDFViewPager(this, mUrl, listener); remotePDFViewPager.setId(R.id.pdfViewPager); } /*加载成功调用*/ @Override public void onSuccess(String url, String destinationPath) { pb_bar.setVisibility(View.GONE); adapter = new PDFPagerAdapter(this, FileUtil.extractFileNameFromURL(url)); remotePDFViewPager.setAdapter(adapter); updateLayout(); } /*更新视图*/ private void updateLayout() { pdf_root.removeAllViewsInLayout(); pdf_root.addView(remotePDFViewPager, LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT); } /*加载失败调用*/ @Override public void onFailure(Exception e) { pb_bar.setVisibility(View.GONE); ToastUitl.show(this, "数据加载错误"); } @Override public void onProgressUpdate(int progress, int total) { }
}
个人总结(非转载):
查了许多资料发现ios的WebView可以直接预览pdf文件,Android的不可以,查资料发现一般Android都有下面种方式浏览pdf文件
1.可以使用Android的外部浏览器直接打开。
2.下载pdf然后使用相关的PdfView打开(上文的第二种方法,看代码应该也是先下载,再预览)。
3.调用手机其他office软件预览。
4.使用Google doc支持来展示word,excel,pdf,txt(WebView方式在线预览),
https://docs.google.com/gview?embedded=true&url=文档地址
优点:使用简单,无需服务器和客户端的额外部署工作。
缺点:国内需要翻墙访问。
5.有第三方的SDK,不过会让apk的包变大。
希望有更多资料的网友在下面留言。
关于Android 在线预览PDF文件相关推荐
- android 在线预览pdf文件
android原生webView不支持预览pdf文件,ios却可以,所以android想要实现在线预览webView要通过其他方法,有以下几种方法: 1.andorid原生自带的pdf管理库,主要提供 ...
- android 在线预览pdf文件(目前最全)
android原生webView不支持预览pdf文件,ios却可以,所以android想要实现在线预览webView要通过其他方法,有以下几种方法: 一.andorid原生自带的pdf管理库,主要提供 ...
- Android在线预览pdf文件的几种方式
Android原生WebView不支持预览pdf文件,ios却可以,所以Android想要实现在线预览WebView要通过其他方法,有以下几种方法: 第一种方式: andorid原生自带的pdf管理库 ...
- uniapp在线预览pdf文件
公司要求uniapp打包的h5和app都要能在线预览pdf文件.最开始是想找uniapp的插件,去插件市场搜了下,没得几个插件可用,且需要收费,所以直接用的pdf.js插件实现,在h5以及h5打包的a ...
- html中在线预览pdf文件之pdf在线预览插件
html中在线预览pdf文件之pdf在线预览插件 最近遇到一个需求,要在html页面查看pdf生成的pdf文件! 翻来覆去找到两种办法 ,最后采用了jquery.media.js插件 方式一 将pdf ...
- html做在线预览pdf文件,html中在线预览pdf文件之pdf在线预览插件
html中在线预览pdf文件之pdf在线预览插件 最近遇到一个需求,要在html页面查看pdf生成的pdf文件! 翻来覆去找到两种办法 ,最后采用了jquery.media.js插件 方式一 将pdf ...
- 如何在html中在线预览pdf文件?
方法1:使用 jquery js 库 1.引入 jquery-3.1.1.min.js 和 jquery.media.js 两个js文件,下载保存到本地 下载连接:jquery-3.1.1.min.j ...
- Vue-pdf实现在线预览PDF文件
前言 在大多数项目中都会遇到在线预览PDF文件,项目使用的是element ui,使用vue-pdf实现. 安装依赖 npm install --save vue-pdf 相关参数 参数介绍: url ...
- 网页中实现安卓手机在线预览PDF文件
写在前面:本文为转载,原文链接:https://blog.csdn.net/super_DuoLa/article/details/90207965原文链接 苹果手机可以直接在线预览PDF文件,而安卓 ...
最新文章
- HDU 4406 最大费用最大流
- aix 的c库为什么都是静态库_关于AIX libpthread.a 静态库
- 从头开始敲代码之《从BaseApplication/Activity开始(五)》(自定义控件,实现点击/滑动翻页)...
- tensorflow环境下的识别食物_在win10环境下进行tensorflow物体识别(ObjectDetection)训练...
- 使用Microsoft Word2016无法正常对Latex文本转换的踩坑和解决方法
- 解析HTTP协议六种请求方法,get,head,put,delete,post有什么区别
- python lxml xpath爬取图片代码
- java值传递和引用传递简单_Java里的值传递与“引用传递”——一些想法
- python正则_正则化方法及Python实现
- 玻森新闻自动摘要算法介绍
- 学python后到底能干什么-普通小白学会Python到底具体能做什么呢?
- IP转换器 V2.6
- FSEC大学生电动方程式赛车电气系统设计
- win7去除快捷方式小箭头
- wow Warlock shushia PVP DZ
- python图像处理 马赛克效果
- 40了解云计算平台的高可用架构,如 AWS 的多可用区、GCP 的负载均衡器
- (No operations allowed after connection closed.).Possibly consider using a shorter maxLifetime value
- 解析「Web3悖论」的内在机理与突破路径
- 学习ES6(六)--函数 Lambda函数(=) 详解