Android 上预览 PDF 文件

摘要:
使用资源:https://github.com/mozilla/pdf.js版本为2.3.200。此处记录了使用过程,以方便后来者。考虑到网络的不稳定性,我下载了js库。如果您不介意,可以直接使用网络库https://www.jsdelivr.com/package/npm/pdfjs-disthttps://cdnjs.com/libraries/pdf.jshttps://unpkg.com/pdfjs-首次使用dist/时,它直接使用提供的API创建画布。在每个页面上创建一个画布并对其进行排列,因为还有其他内容要显示。在pdf中,在js示例中,我们看到了手机上使用的示例,因此我们对其进行了更改。它循环使用画布并逐页加载。修改后,很容易在手机上使用32M文件,无需压力。例如,门户网站只需编写一个演示:https://github.com/skymxc/Example/tree/master/displaypdfassets目录是修改后的页面。

最近在 手机上要显示 PDF 文件,在搜索引擎上找到了很多方案,大体上有以下几种:

我是选择了 pdf.js 这个库,使用 WebView 配合 H5 页面,可以做到随意的自定义,并且体积很小,放在服务器的话就更小了。

在这里记录下使用的过程也方便后来者。

考虑到网络不稳定的情况,所以我把 js 库下载下来了,不介意的可以直接使用网络库

刚开始使用时,直接使用提供的 API 创建 canvas ,每一页创建一个 canvas 然后排列下来,因为有其他的内容要显示。
开发测试的时候因为文件小,并且是在电脑上浏览的没有发现什么问题,在手机上测试的时候使用了一个稍微大点的文件,内存立马就爆了。
因为是在加载完成后,每页都创建一个 canvas 显示,没有做到逐页加载,也没有做任何循环使用和销毁的处理,内存就爆了。

在 pdf.js 的例子里看到了在手机上使用的例子,就改了改,它这个做到了循环使用 canvas,并且是逐页加载。
修改之后在手机上使用 32M 的文件轻松无压力。示例,传送门

memory.png

简单写了个 Demo :https://github.com/skymxc/Example/tree/master/displaypdf

assets 目录是修改后的页面。

显示网络文件还是要下载到本地才可以,因为跨域访问的限制问题。

screen-1

End

免责声明:文章转载自《Android 上预览 PDF 文件》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇SaaS模式应用之多租户系统开发(单数据库多Schema设计)linux下查看进程+杀死进程方法大全下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Json对象转Ts类

一 目标 推荐一款在线将Json对象转换为Ts类的工具:https://apihelper.jccore.cn/jsontool 可以帮助前端开发人员提高开发效率。 二 背景 Json是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。所以Json成为了前后端交互使用的主要格式。 Typescript作为一种前端开发语言,应用也越来越广...

最全的 Charles 抓包工具详解

0. 前言不管是移动开发者还是测试者,于抓包工具对于我们的工作都是非常有帮助的,而Charles是一款非常优秀的抓包工具 Charles不仅可以帮助我们抓取服务器返回的数据,还可以修改请求参数,修改响应体 基本上HTTP能修改的东西,Charles都能帮我们修改 所以当我们接口在Mock阶段时我们可以通过Charles设置我们本地的JSON数据,加速我们的...

C# Parsing 类实现的 PDF 文件分析器

下载示例 下载源代码 1. 介绍 这个项目让你可以去读取并解析一个PDF文件,并将其内部结构展示出来. PDF文件的格式标准文档可以从Adobe那儿获取到. 这个项目基于“PDF指南,第六版,Adobe便携文档格式1.7 2006年11月”. 它是一个恐怕有1310页的大部头. 本文提供了对这份文档的简洁概述. 与此相关的项目定义了用来读取和解析...

安卓渗透和审计工具整理

1.cSploit: https://github.com/cSploit/android/releases 2.DroidSheephttp://bbs.zhiyoo.com/thread-13249611-1-1.html 3.androrathttps://github.com/wszf/androrat 4.Network Spoofhttps:/...

Tomcat配置https环境(Windows+Linux)

[-] 1进入到jdk下的bin目录 2输入如下指令keytool -v -genkey -alias tomcat -keyalg RSA -keystore dtomcatkeystore 3输入keystore密码 4输入名字组织单位组织市省国家等信息 5输入之后会出现确认的提示 6输入tomcat的主密码 7进入tomcat文件夹 8在seve...

OneCloud记录

配置信息 S805, 1G RAM, 8G ROM, USB2.0 * 2, 1GB LAN, SD Cardreader S805参数: 32-bit, ARMv7-A, Cortex-A5, 1.5GHz 4核. 这个不是64位的CPU. 原生玩客云刷机的步骤 因为玩客云原生系统uboot无法输入命令,且启动后TTL终端需要用户登录, 所以需要先将带u...