Android MuPDF 阅读PDF文件
MuPDF是一款轻量级的开源软件,可以用来阅读PDF文件。下载完源代码以后,想要运行成功,除了Android SDK之外,还需要Android NDK环境,因此有点麻烦。
但是一旦安装完必须的环境以后,后面的编译其实并不烦。
1 安装Android SDK, NDK,Cygwin.(Cygwin是为了在Windows环境下编译,linux环境不需要)
安装方式:http://www.cnblogs.com/CharlesGrant/p/4763571.html
2 下载MuPDF,当前版本为1.2
https://code.google.com/p/mupdf/downloads/list
3 把 mupdf-1.2-source/android/下的文件"local.properties.sample" 改名为 "local.properties",并且把sdk.dir的值指向你电脑配置的android sdk位置
4 打开Cygwin,定于到mupdf-1.2-source根目录,运行 make, 不要定位到mupdf-1.2-source/android/,否则会没有反应,
运行成功后会出现一个build目录,虽然控制台会出现一些错误信息,但是不用管它,不影响下一步
5 在Cygwin 中用cd命令定位到 mupdf-1.2-source/android/目录,运行 "ndk-build",等待一段时间,
系统会生成一个 libmupdf.so 文件在 lib(s) 文件夹
6 在Eclipse中选择导入android代码的选项,把mupdf-1.2-source/android/下的代码导进工程,运行工程到你的终端
(模拟器或者真实的移动设备),OK,打开后通过文件夹去找到对于的pdf文件,就可以查看了。
注意:没有通过NDK编译,直接运行mupdf-1.2-source/android/下的工程,可以运行成功,但是在查看pdf文件的时候会报错。
开源android pdf阅读:
Vudroid:
Google code:http://code.google.com/p/vudroid/
源码提取:http://code.google.com/p/vudroid/source/checkout
基于了 mupdf 库开发
这是一款可以阅读pdf和djvu格式文本的阅读器。按道理说我使用这个给自己带来一定的麻烦,因为我自己需要剥离pdf部分,因为作者底层用的ndk开发,我还得重新编译so库。但是,在我找到的所有源代码中,此作品是最顺畅的,我不能割舍。如果大家想要快速使用而不想剥离pdf部分,可以使用我的google code:http://code-ernest.googlecode.com/svn/trunk/DocumentViewer
支持缩放,支持手势移动,能显示阅读的页数,打开大文件也没啥问题
缺点:显示有点不流畅,它是一部分一部分加载的
Google code: http://code.google.com/p/droidreader/
其采用native library和Vudroid一样:MuPDF
但是它的缺点是,实现上比Vudroid少了那么点顺畅性,在zoom这一点上要输Vudroid,其他方面都很棒。
apv:
Google code:http://code.google.com/p/apv/
其采用native library和Vudroid一样:MuPDF
理论上来说应该和Vudroid不太差,它的问题是刷新比Vudroid要慢那么一点,没有多点触控。但是,有一点必须说的是:Vudroid读取文本格式的超强,我给过20M的文字版的pdf测试过,vudroid都能顺畅阅读,Vudroid读取扫描版的或者里面有图片的要差一点,速度稍慢;而apv读取扫描版的则顺畅一点,50M的扫描版也没有问题,但是,20M的文字版pdf它不能读,我没有深究什么原因,大家有兴趣的可以发现下,望指教:ernest.he2009@gmail.com
apdfviewer:
Google code: http://code.google.com/p/apdfviewer/
代码最少,整页加载模式中最快的一款,当然,快,就意味着有可能是ndk开发,不错它就是ndk的产物,有兴趣的可以使用。注意:大文件读取有点慢,我以为它死了。这一点上最好的是Vudroid。
Android PDF Viewer
前人的总结:http://my.oschina.net/ernest/blog/16999
Android MuPDF 阅读PDF文件的更多相关文章
- 在线阅读PDF文件js插件——pdf.js
最近接到一个需求大致是这样的,要求在移动端和pc端能够在线阅读pdf文件,类似百度文库的功能. 首先想到的就是插件,github(全球最大的男性交友网站- -恩)上一大堆啊,首先找到一个PDFobje ...
- laravel项目中手机浏览器在线阅读pdf文件-->PDFJS插件
第一步:下载链接:http://mozilla.github.io/pdf.js/getting_started/#download 第二步:将下载的文件放在项目中. 第三步:在项目中想要预览的地方给 ...
- 借助91助手,将ibook中的pdf文件拷贝至其它的pdf阅读器中(ios设备无需越狱)
有时候在使用ios自带的ibook阅读pdf文件的时候,会发现ibook有些功能并不是那么方便.最近我就遇到了一例,我想在ibook中放一本比较大的pdf书,页数有几百吧,pdf文件本身每一章节都是有 ...
- Android MuPDF 部署
MuPDF是一款轻量级的开源软件,可以用来阅读PDF文件.下载完源代码以后,想要运行成功,除了Android SDK之外,还需要Android NDK环境,因此有点麻烦. 但是一旦安装完必须的环境以后 ...
- 用C#制作PDF文件全攻略
用C#制作PDF文件全攻略 目 录 前 言... 3 第一部分 iText的简单应用... 4 第一章 创建一个Document 4 第一步 创建一个Document实例:... 5 第二步 ...
- 在线打开,浏览PDF文件的各种方式及各种pdf插件------(MS OneDrive/google drive & google doc/ github ?raw=true)
在线打开,浏览PDF文件的各种方式: 1 Google drive&doc (国内不好使,you know GFW=Great Firewall) 1. google drive: 直接分 ...
- SpringBoot在线预览PDF文件(引用pdf.js工具)
本项目Demo使用了PDF.js插件实现PDF在线阅读功能PDF.js插件下载地址 实测能用! 1.创建SpringBoot项目,目录结构如下: 2.进行项目配置: pom.xml: <proj ...
- Android 如何本地加载pdf文件
大部分app打开pdf文件是通过intent调起手机中能打开pdf文件的工具,来查看pdf文件,如果需求是,用户在app内下载好pdf文件后,不通过第三方的工具,本地打开. 这样的需求要怎么实现呢?上 ...
- cordova程序加载pdf文件的2种方法(ios/android)
前言 公司目前的前端架构是微信端由vue全家桶负责h5网站的单页应用,android端和ios端则选择cordova打包成apk和app.其中,有一个业务逻辑是点击某个链接进入pdf的展示,h5的方案 ...
随机推荐
- 对Object类中方法的深入理解
看一下API中关于Object的介绍: 类 Object 是类层次结构的根类.每个类都使用 Object 作为超类.所有对象(包括数组)都实现这个类的方法. 那么Object中到底有哪些方法,各自有什 ...
- 使用Delphi对象(声明、实例化、构造、释放)
一.声明和实例化 在使用一个对象之前,用class关键字声明一个对象.可以在一个程序或单元的type部分声明一个对象类型: type TFooObject = class; 除了声明一个对象类型,通常 ...
- SSH入门简单搭建例子
因为公司涉及项目使用SSH,为了解SSH搭建方式和运作原理,就自己搭建了一个. 采用尽量以最少的JAR包,搭建一个简单的struts2+spring+hibernate环境,希望像我这样的入门者都能理 ...
- <转>WCF中出现死锁或者超时
WCF回调中的死锁 一.服务器端死锁 对于如下服务: [ServiceContract(CallbackContract = typeof(INotify))] public class Downlo ...
- thinkphp自动验证中的静态验证和动态验证和批量验证
1.静态定义 在模型类里面预先定义好该模型的自动验证规则,我们称为静态定义. 举例说明,我们在模型类里面定义了$_validate属性如下: class UserModel extends Model ...
- WPF 自定义Metro Style窗体
为了使WPF程序在不同版本的操作系统上保持一致的显示效果,我们需要重写WPF控件样式.这篇博客将展示如何创建一个Metro Style的WPF窗体. 首先先看一下最终窗体的效果图, 通过截图我们可以看 ...
- android studio常见错误
1.Failed to import new Gradle project: Could not install Gradle distribution from'http://services.gr ...
- [CentOS]安装软件:/lib/ld-linux.so.2: bad ELF interpreter解决
转自:http://blog.csdn.net/wanglei2258/article/details/24961233 [CentOS]安装软件:/lib/ld-linux.so.2: bad EL ...
- 编译器 expected unqualified-id before numeric constant 错误
今天调试代码,碰到expected unqualified-id before numeric constant 错误,代码的错误模块出现在一个函数模块上, 奇怪的是这个函数模块之前编译了很多次,也没 ...
- LeetCode——Single Number(找出数组中只出现一次的数)
问题: Given an array of integers, every element appears twice except for one. Find that single one. No ...