Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript PDF.JS在客户端预览从服务器端发送的大型PDF文件(>;200MB)_Javascript_Node.js_Pdf_Pdf Generation_Pdfjs - Fatal编程技术网

Javascript PDF.JS在客户端预览从服务器端发送的大型PDF文件(>;200MB)

Javascript PDF.JS在客户端预览从服务器端发送的大型PDF文件(>;200MB),javascript,node.js,pdf,pdf-generation,pdfjs,Javascript,Node.js,Pdf,Pdf Generation,Pdfjs,我正在使用一个pdf查看器,它将从服务器(nodejs)加载一个pdf文件,然后在客户端进行渲染,以允许用户在我的站点中直接阅读 我习惯于在客户端渲染pdf文件。问题是客户端必须先下载整个pdf文件,然后才能解析和呈现它,所以如果文件太大(在我的例子中为200MB),用户必须等待下载整个200MB 我研究过,我认为我可以通过两种方式解决这个问题: 在服务器端将大型pdf文件拆分为许多较小的pdf文件,并仅按需提供特定的小型文件。但这样,我会丢失一些重要的元数据,如pdf大纲 在服务器端使用pd

我正在使用一个pdf查看器,它将从服务器(nodejs)加载一个pdf文件,然后在客户端进行渲染,以允许用户在我的站点中直接阅读

我习惯于在客户端渲染pdf文件。问题是客户端必须先下载整个pdf文件,然后才能解析和呈现它,所以如果文件太大(在我的例子中为200MB),用户必须等待下载整个200MB

我研究过,我认为我可以通过两种方式解决这个问题:

  • 在服务器端将大型pdf文件拆分为许多较小的pdf文件,并仅按需提供特定的小型文件。但这样,我会丢失一些重要的元数据,如pdf大纲

  • 在服务器端使用pdf.js直接获取pdf页面,然后将每个页面作为二进制文件提供给客户端,客户端还将使用pdf.js(addPage函数)将每个页面添加到其查看器中。但我不知道这是否可能

那么我该怎么解决这个问题呢?
非常感谢。

最佳解决方案是为web优化所有PDF文件

pdf.js
的默认设置将只加载需要渲染的部分


有关更多信息,请参阅。

啊,我不知道pdf.js支持范围请求,我会尝试一下,非常感谢!您是否能够在服务器端进行更改,以根据范围请求呈现pdf?即使我也在尝试做同样的事情,我已经在服务器端做了更改,Pdf.js会像预期的那样调用服务器,但它不会对所有范围都进行调用。请让我知道在我使用spring boot的服务器端需要做哪些更改。非常感谢您的帮助。是的,我通过更新服务器解决了这个问题,以支持范围请求,然后pdf.js工作得非常好。在客户端,我没有做任何改变。我在服务器端使用nodejs另外,我在服务器端手动实现范围请求时失败了,所以我尝试使用一个库(),所以您可以参考该库的代码来查看需要更改的内容