3

我正在使用pdf.js查看pdf文档,pdf.js首先从服务器获取整个文档然后开始渲染,这种行为会导致两个问题:

  • 如果pdf文档很大,加载需要很长时间。
  • 如果有人从移动设备读取,缓存内存泄漏。

我认为通过仅请求用户浏览的所需页面而不是整个文档来使用 http 范围请求将解决这些问题。

这是一个实现范围请求的 PR,但请求仍在运行,直到整个文档加载而不是 fetch-as-you-go 行为。 https://github.com/mozilla/pdf.js/pull/2719

有什么帮助吗?

4

1 回答 1

1

如果对 PDF 格式的记忆对我有用,那么实际文档不容易拆分,除非您在调用之前知道每个页面的确切字节范围(即使这样,我也不确定 JS 能否有效地处理二进制操作这样做,或者如果您要修改 JS 库来执行此操作)。您可能想要做的是按页面服务器端(使用 PHP 或其他语言)拆分文档,而不是使用 加载整个文档,而是pdf.js一个一个地加载页面。

这有一些好处和一些缺点。缺点:

  • 您需要以编程方式拆分 PDF。这实际上并不难,但有点乏味
  • 您还需要找到一种将 PDF 的所有 URI 传递给查看器的方法。这也很容易

优势应该是显而易见的:更少的带宽使用,提供逐页查看的能力,保存单个页面的能力。

于 2013-04-08T14:53:34.990 回答