PDF.js实现按需分片加载pdf文件

pdf.js实现按需、分片加载pdf文件

1.服务端配置

分片加载的实现是基于 HTTP-RANGE,即服务端的文件接口必须实现了HTTP-RANGE。

服务端文件接口实现HTTP-RANGE,需要服务端添加如下响应头

[
  {
    key: "Accept-Ranges",
    value: "bytes"
  },
  {
    key: "Access-Control-Expose-Headers",
    value: "Accept-Ranges,Content-Range"
  }
]

2.下载 releases

mozilla/pdf.js 的github仓库下载最新的 Releases

https://github.com/mozilla/pdf.js/releases

Releases

这里以 Vue 为例,其他前端框架同理

Releases 包解压后放至前端项目的 public 根目录下,如下图

根目录位置

3.PDF预览

在页面中用 iframe 形式引入 viewer.html 并传入需要预览的pdf地址

<script lang="ts" setup>
import {
      ref } from 'vue'
const pdfUrl = ref('http://127.0.0.1:2023/test.pdf')
</script>
<template>
  <div class="w-full h-full">
    <iframe
      :src="`/pdfjs/web/viewer.html?file=${encodeURIComponent(pdfUrl)}`"
      frameborder="0"
      class="w-full h-full"
    ></iframe>
  </div>
</template>

打开网络请求面板,如果 pdf 文件的接口请求都是 206 状态码,说明分片加载成功

接口请求

点击单个请求,响应标头如下:

响应标头

相关推荐

  1. 前端 使用 pdf.jsPDF文件

    2024-01-17 20:00:03       27 阅读
  2. qiankun微应用方案

    2024-01-17 20:00:03       12 阅读
  3. pdf.js 预览密的pdf文件

    2024-01-17 20:00:03       12 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-17 20:00:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-17 20:00:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-17 20:00:03       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-17 20:00:03       20 阅读

热门阅读

  1. GNU Tools使用笔记

    2024-01-17 20:00:03       22 阅读
  2. C#基础-资源清理-终结器与IDisposable

    2024-01-17 20:00:03       33 阅读
  3. ssh免密登录

    2024-01-17 20:00:03       39 阅读
  4. RecycleView基本使用及常见问题汇总

    2024-01-17 20:00:03       35 阅读
  5. 用c语言写一个抖音点赞系统

    2024-01-17 20:00:03       29 阅读
  6. 4、python列表Lists

    2024-01-17 20:00:03       33 阅读