1. 简介

本章会讲四种可以在Android端使用的pdf框架,并介绍其优势和劣势。

(1)android-pdfview

第一个当然是github上面star 最多android-pdfview,它是基于谷歌的一款开源PDF浏览框架VuDroid封装的Android端框架,
支持缩略图,缩放,页面枚举,默认起始页。还有pdf加载监听,pdf页面滑动监听。
功能很强大,不过很可惜,功能有限,作者也在15年停止了维护。

(2)pdfium

pdfium是谷歌开源的一款高性能的PDF渲染组件,用来作Chrome内核的pdf渲染。支持pdf加密文件打开,支持获取pdf文档信息,作者,标题,副标题,创建日期等…可以将指定的pdf页面渲染成bitmap,这个框架足以实现基本所有pdf定制化操作。美中不足的是框架比较大,对于移动端的包压缩是一个挑战

(3)mupdf

mupdf是一款轻量级的pdf浏览框架,基本上支持前面两者的功能,如果是文本的pdf文档还支持搜索,标注等功能。当之无愧的强大。虽说轻量,但编译出来的so库也不小。

(4)Android原生

Android在API19提供了android.graphics.pdf 这个pdf管理库,主要提供两个类pdfRender 和pdfDocument,pdfdocument 是将View转成pdf文件(require API19),pdfRender是将pdf文件绘制到bitmap上(require API21),这个就是原生提供的pdf浏览框架,但因为API要求很容易被拒之门外,不过随着API迭代,以后可能就无所谓了。

2.四者做一下对比

因为所有的框架都是将pdf转成图片做展示,所以定制化自己都能实现,那在这里这边对四者做一下对比。 这边的信息查看指pdf创建信息,大小指so库大小

框架名称 支持信息查看 支持文本检索 API要求 原始/打包后大小
VuDroid false false API16 or lower 19M->6.7M
pdfium true false API16 or lower 30M->15.3M
mupdf true true API16 or lower 70.2->36.6M
PdfRenderer false false API21 0

总结:mupdf功能最强大,pdfium次之,VuDroid和PdfRender都差不多。
但因为PdfRender有API限制。mupdf库有点大,所以大家根据需求来选择。

3.源码和Demo

VuDroid源码

VuDroidDemo下载地址

pdfium源码

pdfiumDemo下载地址
//写的并不是很好,正在看其他的开源框架思考更好的封装思路ing~~~
mupdf源码

mupdfDemo下载地址

PdfRendererWiki

PdfRenderer下载地址

AndroidPdf框架一览(一)相关推荐

  1. 【移动端DL框架】当前主流的移动端深度学习框架一览

    大家好,继之前的12大深度学习开源框架之后,我们准备开通新的专栏<移动端DL框架>,这是第一篇文章,先来做一个总体的介绍,更多的细节可以关注以后的文章. 在这个专栏中,我们会介绍与移动端的 ...

  2. Java REST框架一览

    http://www.iteye.com/topic/85928 目前宣称支持REST的Java框架包括以下这些: Restlet(http://www.restlet.org/) Cetia4(ht ...

  3. Java微服务框架一览

    原文:Java Microservices: Code Examples, Tutorials, and More 作者:Angela Stringfellow 翻译:雁惊寒 译者注:本文首先简单介绍 ...

  4. 常用Node.js 框架一览

    原文地址:Top Node.js Frameworks to use in 2021 原文作者:Ronak Patel 译文出自:掘金翻译计划 本文永久链接:https://github.com/xi ...

  5. Spring MVC源码 - 00开篇主题框架一览

    文章目录 主流程 主流程

  6. Java集合框架一览笔录

    2019独角兽企业重金招聘Python工程师标准>>> 1.集合概念 集合类主要负责保存.盛装其他数据,因此集合类也被称为容器类.所以的集合类都位于java.util包下,后来为了处 ...

  7. awk,print命令

    awk awk:报告生成器,格式化文本输出种类 :nawk gawkgawk;模式扫描和处理语言awk基本用法 awk变量 awk格式化 awk操作符 awk条件判断 awk循环 awk数组 awk函 ...

  8. RPC框架(一)RPC简介

    一.概述 二.RPC 2.1.RPC定义 2.2.RPC主要组成部分 三.影响RPC框架性能的因素 四.工业界的 RPC 框架一览 4.1.国内 4.2.国外 五.如何选择RPC框架 一.概述 随着公 ...

  9. 解读 2018:13 家开源框架谁能统一流计算?

    2018 年接近尾声,I我策划了"解读 2018"年终技术盘点系列文章,希望能够给读者清晰地梳理出重要技术领域在这一年来的发展和变化.本文是实时流计算 2018 年终盘点,作者对实 ...

最新文章

  1. 《OpenCV3编程入门》学习笔记8 图像轮廓与图像分割修复(四)图像的矩
  2. WebConfig 加密解密的原理是什么?
  3. RTP在。net中的使用(资料)
  4. LiveBos---按钮成下拉
  5. python 调用c++库接口出错
  6. 3-3numpy:向量与矩阵的计算,矩阵的逆
  7. SpringMvc 03 非注解形式下的映射器与适配器
  8. NumSharp v0.6.5 .NET矩阵计算库,与TensorFlow.NET无缝融合
  9. 主动申请linux内存 脚本,Shell 脚本来自动监控 Linux 系统的内存
  10. python服务器搭建qt搭建客户端_利用PythonQT,定制服务器启动工具
  11. C-Free 5.0注册码分享
  12. 本人CSDN资源重传、0积分获取的方法以及重要声明(长期有效)
  13. 计算机硬盘能影响速度吗,BitLocker对电脑硬盘性能的影响
  14. 生活美学 | 8种咖啡冲煮器具分别有什么特点
  15. 创建Docker镜像
  16. html网页背景图片 菜鸟教程,CSS3 背景
  17. Java添加一个滑动验证码,有啥可难的,分分钟加一个
  18. psj在计算机课程中什么意思,计算机运用基础教育实践
  19. 在.net gridview 更新回oracle数据库,.net 连接Oracle操作 - cathy_10 - 博客园
  20. 以matlab为基础数学分析,matlab与数学分析.docx

热门文章

  1. CSS背景(background)篇
  2. 启动VMware Workstation出现问题W32 Authconnectionlaunch :回复错误 Process creation failed
  3. JAVA 实现《泡泡堂基础版》游戏
  4. 无法加载xxx.dll文件,找不到指定的模块(异常来自HRESULT:0x8007007E)解决
  5. uniapp 手机键盘弹起事件,解决底部同意阅读协议的盒子底部变形问题
  6. 移动端vant input框点击时禁止弹出手机键盘
  7. java源码系列:HashMap底层存储原理详解——4、技术本质-原理过程-算法-取模具体解决什么问题
  8. 【绝对给力】Android开发免豆资料(教程+工具+源码)下载地址汇总 【转载自51CTO】
  9. 有哪些免费下载PNG格式的素材网站?
  10. 35岁孩子妈,2年时间彻底从互联网转型到新行业,再也不担心年龄歧视!