PDF JS - 延迟加载?

NBI*_*NBI 3 pdf.js

看来,pdf.js 本身请求 PDF 文件的整个字节范围请求。相反,是否可以在 PDF 加载时仅请求 5 页,在滚动时可以加载另一组 5 页,就像那样。有没有办法通过使用 pdf.js 来实现此目的?

Van*_*bat 5

长话短说——不。

PDF 不是连续的存储格式。如果 PDF 文件的格式适合快速 Web 查看,那么您可以让它显示第 1 页,同时其他页面仍在流入,但您不能要求从特定页面或页面范围开始。pdf 内部使用了一堆部分、它们之间的链接/指针和摘要。将它们想象成木块,木块之间有一些绳子。除非您有“足够”的文件来提供您需要的部分,否则您无法渲染任何内容,但就您的问题而言,内部部分的组织几乎是随机的。

获取特定页面的唯一方法是让服务器端组件将它们从 PDF 文件中分离出来,并创建一个仅包含这些部分的新 PDF 文件,但分页到第 6 页将意味着打开一个新文档等。

编辑:Acrobat 查看器有启动参数,可以让您设置要显示的第一页,其他查看器可能提供此功能,但除非您有一些非常智能的客户端-服务器交互,否则这仍然需要整个 PDF 文档首先出现在客户面前。

编辑 2:根据 @async5 的评论,PDF.js“可能”能够进行页面范围加载。请参阅PDF.js 文档的这一部分。但请注意,对提供 PDF 文件的 Web 服务器有要求。