【发布时间】:2020-01-14 13:28:03
【问题描述】:
我正在使用 pdf 查看器,它将从服务器 (nodejs) 加载 pdf 文件,然后在客户端呈现以允许用户直接在我的站点中阅读。
我正在使用pdf.js 在客户端呈现 pdf 文件。问题是客户端必须先下载整个pdf文件才能解析和渲染它,所以如果文件太大(在我的情况下约为200MB),用户必须等待下载整个200MB。
我研究过,我认为我可以通过两种方式解决这个问题:
在服务器端将大的 pdf 文件拆分为多个较小的 pdf 文件,并仅按需提供特定的小文件。但是这样一来,我会丢失一些重要的元数据,比如 pdf 大纲,...
在服务器端直接使用 pdf.js,获取 pdf 页面,然后将每个页面作为二进制文件提供给客户端,客户端还将使用 pdf.js(addPage 函数)将每个页面添加到他们的查看器。但我不知道这是否可能。
那么我应该怎么做才能解决这个问题呢? 非常感谢。
【问题讨论】:
-
您是否能够在服务器端进行更改以呈现带有范围请求的 pdf?即使我正在尝试做同样的事情,我已经在服务器端进行了更改,Pdf.js 按预期调用服务器,但它并不适用于所有范围。请让我知道我正在使用 Spring Boot 在服务器端需要进行哪些更改。非常感谢您的帮助。
-
是的,我通过更新服务器来支持范围请求解决了这个问题,然后 pdf.js 工作得很好。我没有在客户端改变任何东西。我在服务器端使用 nodejs
-
另外,我在服务器端手动实现范围请求时失败了,所以我尝试使用一个库(github.com/pillarjs/send),所以你可以参考那个库的代码来看看需要改变什么
标签: javascript node.js pdf pdf-generation pdfjs