Android实现pdf在线预览或本地预览

最近项目中需要使用在线预览pdf,并要能实现自动播放,我想这样的需求无论如何来说都是很操蛋的
由于本人水平有限,最后讨论将项目需求改成将pdf下载到本地再实现自动播放。

接下来总结下目前能够实现pdf阅读的方案,开发当中需要根据实际需求去选择相应的方案。


1.使用Google doc支持来展示word,excel,pdf,txt(WebView方式在线预览):

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"); 

	public class AppWebViewClients extends WebViewClient {

		@Override
		public boolean shouldOverrideUrlLoading(WebView view, String url) {
			// TODO Auto-generated method stub
			view.loadUrl(url);
			return true;
		}

		@Override
		public void onPageFinished(WebView view, String url) {
			// TODO Auto-generated method stub
			super.onPageFinished(view, url);

		}
	}
https://docs.google.com/gview?embedded=true&url=文档地址

优点:使用简单,无需服务器和客户端的额外部署工作。
缺点:国内需要翻墙访问。

2.github开源项目:https://github.com/JoanZapata/android-pdfview:

     

引入:compile 'com.joanzapata.pdfview:android-pdfview:1.0.4@aar'

    <com.joanzapata.pdfview.PDFView
        android:id="@+id/pdfview"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

         pdfView = (PDFView) findViewById(R.id.pdfview);
               //加载assets下的文件
		pdfView.fromAsset("sample.pdf")
		     //.fromFile("")指定加载某个文件
		     //指定加载某一页
              /*.pages(0, 1,2, 3, 4, 5)*/
                .defaultPage(1)
                .showMinimap(false)
                .enableSwipe(true)
             /* .onDraw(onDraw)
                .onLoad(onLoadCompleteListener)
                .onPageChange(onPageChangeListener)*/
                .load();
里面有很多方法,可以去看PDFView的源码。


3.Office Web 365(WebView方式在线预览,具体用法同1)

第三方公司提供的一种 Office 文档在线预览的功能,能够实现 Microsoft、Adobe、WPS 
文档的移动端和PC端在线网页访问。使用简单,类似 Google Doc 访问方式,一个固定格
式的链接,轻松实现:
                 http://ow365.cn/?i=您的网站ID&furl=文档地址
优点:功能强大,使用简单。
缺点:付费使用(可免费受限使用,如访问次数、广告显示等)。



4.打开本地应用

如果移动设备中安装有能够打开 Office 文档的本地应用,也可以借助它们打开所要操作的文档,
当然前提是必须先将远程文档下载到设备的本地存储空间中:

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
//officeFile:本地文档;type:文档MIMEType类型,可以使用文件格式后缀
intent.setDataAndType(Uri.fromFile(officeFile), type);
if (intent.resolveActivity(getPackageManager())!=null){
  startActivity(intent);
}
优点:可读可写。
缺点:需要先行下载,同时设备中存在能够打开文档的本地应用,并且阅读时会离开当前应用。


5.第三方 SDK

网上有一些免费开源的解析源码和第三方公司提供的付费 SDK,将其嵌入自己的项目中,便能
使用其中的功能操作 Office 文档。这种方式的缺点也显而易见,最直接的就是大大增加了 APK 
安装文件的大小。免费的开源项目,存在一些局限性和不稳定性,操作繁琐;付费 SDK ,使用起来
相对较为简单。
免费开源:
pdfium-----Google 的开源项目,也是 Chrome 浏览器的PDF渲染引擎,初始代码来自国内知名PDF技术公司「福昕」。


AndroidPdfViewer(上面的方法2)


PdfiumAndroid-----基于 pdfium 的两个 Android 平台实现方式,支持 PDF 文档的应用内预览,
              支持动画、缩放、手势和双击操作。


MuPDF------一个轻量级的 开源 PDF 和 XPS 查看器。


付费SDK:
Foxit PDF SDK-----福昕出品,性能稳定,功能强大,支持 PDF 的显示、导航、创建、搜索、
 注释、保护、PDF文本提取、图片转换、表单数据收集和编辑等功能。


plugPDF-----来自国外的一个付费 SDK,使用简单,只需三步即可集成到自己的应用中并使用。


6.服务器端解析
需要在服务器端完成 Office 文档的解析工作,通过一些技术手段将文档转换为 Html 文件或者
图片,然后再在客户端通过 WebView 加载显示。

PDF.js:「 mozilla 」开源的一种JS解决方案,提供了服务器和客户端两种集成方式。


pdf2htmlEX:类似 PDF.js ,在服务器端集成,利用 Web技术完成 Office 文档的解析工作。


总结:

        总体来说,在 Android 平台上实现 Office 文档的预览和编辑功能,属于一个较为棘手的问题,
需要结合实际产品需求和开发成本、稳定性等多方面考虑。当然,如果不是硬需求,最好不要
随意集成开源 SDK,毕竟研发成本过高,同时稳定性不见得如你所想。

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
优看PDFSDK For Android是优看科技出品的Android平台下PDF底层程序库,提供PDF及TXT阅读器最基础的功能,适合需要高级定制功能的开发者。优看PDF SDK For Android提供Android java接口,允许开发人员将PDF显示、TXT显示、导航、搜索、笔记、平滑翻页等功能无缝地集成到Android应用程序中。如果需要iOS版PDFSDK请访问http://www.ycanpdf.cn/2017/04/623。 此外,我们还提供基于以上核心技术的定制开发服务,开发人员可通过所提供的示例代码快速上手,更专注于程序开发而不是PDF及TXT,让您的应用快速投入市场。 以下简单介绍优看PDFSDK For AndroidAndroid平台上的具体应用实例: - 支持PDF及TXT基本阅读功能(缩放、目录跳转、指定页跳转、搜索、记录阅读进度等) - 支持文字选择,添加笔记,显示书签等操作 - 支持画线,箭头,椭圆等功能(PDF文件) - 支持翻页动画:滑动 - 支持夜间模式 - 支持设置背景色,字体大小,行间距(TXT文件) - 支持打开受标准密码保护的PDF文件 优看PDF SDK Android版本支持下列操作环境: - 运行环境:Android4.0或更高版本 - 支持的语言:Java 本公司经过近几年的持续的技术积累,产品线有了较大拓展,除了原有的PDF在线阅读有了较大优化和更新(目前已经能够支持Google Chrome、Mozilla Firefox、苹果Safari、Opera等几乎所有主流的浏器)以外,还推出了以下几款新产品: 1、移动端阅读系列:包含PDF、EPUB、TXT等格式的阅读器和SDK,支持安卓和IOS两个平台; 2、网上书城、网上党员(公职人员)教育学习平台,同时支持PC、安卓、IOS,支持DRM(数字版权保护)功能; 3、PDF类转换控件、PDF电子签章控件等PDF扩展应用。 商务代理/合作联系方式: 联系电话:400-092-1680 029-88869745 QQ:1003059540 E-mail:sales@ycanpdf.cn

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值