描述

pdf.js实现了分片加载,但是在首次加载时自动加载了全部的pdf分片,导致打开了几个超过1g的pdf时,浏览器报出内存不足的提示

解决方案

实现pdf.js的按需加载,只需要修改属性disableAutoFetch为true,表示关闭自动获取,只会请求需要的分片,从而实现了按需加载,disableAutoFetch的默认值是false,表示会自动获取所有分片

实现效果如下,2G大小的pdf首次加载:

pdf.js的一些属性

initialData TypedArray 带有第一部分或全部pdf数据的类型化数组。由扩展使用,因为在切换到范围请求之前已经加载了一些数据。

disableRange 布尔 (可选)禁用PDF文件的范围请求加载。启用后,如果服务器支持部分内容请求,则将以块的形式提取PDF。默认值为“false”。

disableStream 布尔 (可选)禁用PDF文件数据的流式传输。默认情况下,PDF.js会尝试以块的形式加载PDF。默认值为“false”。

disableAutoFetch 布尔 (可选)禁用PDF文件数据的预取。启用范围请求后,即使不需要显示当前页面,PDF.js也会自动继续获取更多数据。默认值为“false”。注意:还必须禁用流式传输,请参阅上文,以便禁用预取功能以使其正常工作。

disableRange: true 样可以pdf.js可以实现pdf文件页码的自动选择


前端实现:
链接:https://pan.baidu.com/s/1DNRM0f5jRpCEvvip_IrCRA?pwd=tred
提取码:tred

PDF.js 实现pdf分页加载的前端优化(实现按需加载)-前端的demo也已经上传相关推荐

  1. Vue项目中利用pdf.js实现pdf内容滑选文字展示与搜索功能

    Vue项目中利用pdf.js实现pdf内容滑选文字展示与搜索功能 需求:在pdf中鼠标滑动选中一段文字,将选中文字展示到input框中(pdf在iframe中) 完成效果: 关于pdf的引用:我是直接 ...

  2. Vue3 + PDF.js 实现 PDF 预览

    文章目录 1 前言 2 PDF 预览测试 2.1 下载 PDF.js 2.2 window.open 直接打开 2.3 弹框形式打开 3 修改配置项 3.1 修改主题色为暗色系 3.2 修改默认语言为 ...

  3. 如何在项目中使用pdf.js查看PDF文件

    最近在做后台管理类的系统,需要在web页面阅读pdf文件.发现一个很好用的插件 pdf.js,简单的介绍一下 官方文档地址:http://mozilla.github.io/pdf.js/ 在线演示地 ...

  4. html 提取pdf,使用PDF.js从PDF中提取文本(2019)

    正如标题所说,我正在尝试使用由Mozilla维护的PDF.js从PDF中提取文本.我知道前面关于stackoverflow的问题,但我不知道从哪里开始. 我试着跟着这个 article 这件事我需要帮 ...

  5. 【iframe结合pdf.js实现pdf的预览/下载及打印功能】

    iframe结合pdf.js实现pdf的预览/下载及打印 1.[下载pdf.js](http://mozilla.github.io/pdf.js/getting_started/#download) ...

  6. vue里使用pdf.js实现pdf文件的预览功能

    引言:经过上一篇文章的测试,发现了以下问题: 兼容性不好 不适用多语言场景(不能共用一套) 会出现跨域问题 难于监控阅读状态 不能控制下载状态 在基于vue开发的移动项目中,如果预览的pdf数量不是很 ...

  7. Java后台+PDF.js 实现pdf分页加载的后端实现

    前言: 主要解决大体积pdf在线浏览加载缓慢,影响用户体验的问题 技术栈为:SpringBoot.Vue.pdfjs 主要核心思路:前端请求时请求头附带请求范围range及读取大小,后端根据请求头返回 ...

  8. Android 使用PDF.js浏览pdf

    Android的WebView做不到ios的WebView那样可以很方便的直接预览pdf文件.要实现利用WebView预览pdf我们可以使用谷歌文档服务: mWebView.loadUrl(" ...

  9. java集成pdf.js实现pdf文件在线预览

    最近项目需要实现在线预览pdf文件功能,找来找去,发现有个pdf.js的类库挺好用,直接用js实现在线预览. pdf.js是开源项目,github的地址: https://github.com/moz ...

最新文章

  1. 洛谷P3254 圆桌问题(最大流)
  2. web前端环境搭建以及vue-cli搭建启动vue项目
  3. 微博feed系统的推(push)模式和拉(pull)模式和时间分区拉模式架构探讨
  4. 工信部等六部门公布2021年度国家绿色数据中心名单
  5. 【是泰波那契,不是斐波那契】1137. 第 N 个泰波那契数
  6. Tomcat 打开jmx
  7. 【https】keystore was tampered with or password was incorrect
  8. 从gbdt到xgboost
  9. python中的snip用法_腾讯mac截图软件Snip使用教程及常见问题
  10. cad怎么卸载干净_安装CAD时提示已安装了怎么办?收藏了这个方法,节省你半天时间!...
  11. win10查看计算机管理员,肿么查看win10微软账户是否为管理员账户
  12. 进程之间究竟有哪些通信方式
  13. http://cdn.ac.nbutoj.com/Problem/view.xhtml?id=1184Elaine's Queue
  14. 去除input默认的加减号
  15. RIM任松伟:黑莓引领企业移动化主题演讲
  16. 蚁群算法 c语言,蚁群算法(C语言实现)
  17. Windows10设置暗色主题
  18. 认识Base64,看这篇足够了
  19. api接口文档中的签名是什么
  20. 9个设计师都在用的图片素材网站,风格齐全,高清免费

热门文章

  1. 盘复分支语句和循环语句的那些知识
  2. Oracle EBS创建LPN
  3. 福昕:十年暗战Adobe
  4. Google Chrome误删书签的恢复方式!
  5. 凯云水利水电工程造价系统 (三) 材料单价 (2)
  6. it企业实习_it公司实习心得体会
  7. UiAutomator Android 的自动测试框架(基础)
  8. 生物信息学Bioinformatics学习笔记(三)-高通量测序
  9. VSCode远程连接报错
  10. Vmware 网络编辑器 /Windows网络适配器