PDF分段加载
使用PDF分段加载可以加快文档呈现速度,节省流量。
分段加载
pdfjsLib.getDocument({
url: ‘…’,
disableRange: false,
disableStream: true,
disableAutoFetch: true
…
})
使用说明
主要配置
disableRange = false
必须同时参数如下
disableStream = true (如果不配置,虽然分段加载生效,但浏览器会持续下载所有pdf文档)
disableAutoFetch = true
主要API
属性 | 说明 | 类型 | 默认值 |
---|---|---|---|
url | PDF的url地址 | String | URL | - |
data | 二进制 PDF 数据。使用类型化数组 (Uint8Array) 来提高内存使用率。如果 PDF 数据是 BASE64 编码的,请先使用 atob() 将其转换为二进制字符串。 | TypedArray | Array. | String | - |
httpHeaders | 基本身份验证请求头 | Object | - |
withCredentials | 指示是否应使用 cookie 或授权标头等凭据发出跨站点访问控制请求。 | Boolean | false |
password | 用于解密受密码保护的 PDF | String | - |
initialData | 带有第一部分或全部 pdf 数据的类型化数组。由扩展使用,因为在切换到范围请求之前已经加载了一些数据。 | TypedArray | - |
length | PDF 文件长度。它用于进度报告和范围请求操作 | Number | - |
range | 允许使用自定义范围 | PDFDataRangeTransport | - |
rangeChunkSize | 指定每个范围请求获取的最大字节数 | Number | DEFAULT_RANGE_CHUNK_SIZE |
worker | 用于加载和解析 PDF 数据的工作器 | PDFWorker | - |
verbosity | 控制日志记录级别;应该使用 VerbosityLevel 中的常量 | Number | - |
docBaseUrl | 文档的基本 URL,在尝试恢复注释和大纲项的有效绝对 URL 时使用,(错误地)仅指定了相对 URL | string | - |
cMapUrl | 预定义 Adobe CMap 所在的 URL。包括尾部斜杠 | String | - |
cMapPacked | 指定 Adobe CMap 是否是二进制打包 | Boolean | - |
CMapReaderFactory | 自定义工厂对于没有 Fetch API 或 XMLHttpRequest 支持的环境很有用,例如 Node.js | Object | {DOMCMapReaderFactory} |
useSystemFonts | 是否使用系统字体 | Boolean | false |
standardFontDataUrl | 标准字体文件所在的地址。包括尾部斜杠 | String | - |
StandardFontDataFactory | 读取标准字体文件时将使用的工厂。提供自定义工厂对于没有 Fetch API 或 XMLHttpRequest 支持的环境很有用,例如 Node.js | Object | {DOMStandardFontDataFactory} |
useWorkerFetch | 在读取 CMap 和标准字体文件时启用在工作线程中使用 Fetch API。当为“true”时,会忽略“CMapReaderFactory”和“StandardFontDataFactory”选项。 Web 环境中的默认值为 true ,Node.js 中的默认值为 false | Boolean | - |
stopAtErrors | 拒绝某些方法,例如getOperatorList 、getTextContent 和 RenderTask ,当相关的 PDF 数据无法成功解析时,而不是尝试恢复任何可能的数据 | Boolean | false |
maxImageSize | 总像素中允许的最大图像大小,即宽 * 高。不会呈现高于此值的图像。使用 -1 表示没有限制,这也是默认值 | Number | - |
isEvalSupported | 确定我们是否可以将字符串评估为 JavaScript。主要用于提高字体渲染的性能,以及解析 PDF 函数时 | Boolean | true |
disableFontFace | 默认情况下,字体会转换为 OpenType 字体并通过字体加载 API 或@font-face 规则加载。如果禁用,字体将使用内置字体渲染器渲染,该渲染器使用原始路径命令构建字形。 | Boolean | - |
fontExtraProperties | 从工作线程导出解析的字体数据时,包括在渲染 PDF 文档期间未使用的其他属性,这对于调试目的(和向后兼容性)可能很有用,但请注意,它会导致内存使用量增加 | Boolean | false |
enableXfa | 渲染 Xfa 表格 | Boolean | false |
ownerDocument | 指定一个显式的文档上下文来创建元素并将资源(例如字体)加载到其中 | HTMLDocument | - |
disableRange | 禁用 PDF 文件的范围请求加载。启用后,如果服务器支持部分内容请求,则 PDF 将分块获取 | Boolean | false |
disableStream | 禁用 PDF 文件数据的流式传输。默认情况下,PDF.js 尝试分块加载 PDF 文件 | Object | false |
disableAutoFetch | 禁用预取 PDF 文件数据。启用范围请求后,即使不需要显示当前页面,PDF.js 也会自动继续获取更多数据 | Object | false |
pdfBug | 启用用于调试 PDF.js 的特殊钩子(请参阅web / debugger.js ) | Object | false |
参考资料
PDF分段加载
http://example.com/20230508-PDF分段加载/