pdf.js 分片加載問題

現象

在pdf分片加載的時候,會有bytes 大於默認大小65535。特別是pdf文件在13MB左右的時候,這種現象更加明顯。

如下圖:
在這裏插入圖片描述
上圖中,最後兩次請求體積明顯大於65535。

如果文件過小比如只有1MB,或者文件過大200MB,則這種問題很少見。

解決方案

經查看pdf.js的源碼,在pdf.js\src\display\fetch_stream.js 文件中227行左右進行修改。修改如圖:
在這裏插入圖片描述
添加代碼:

const diff = (end - 1) - begin;
const url = source.url;

if (diff > (source.rangeChunkSize|| 65535)) {
   return false;
}

修改完成之後,按照pdf.js github官網 進行重新打包即可。
重新打包完成後,pdf.js\build\generic 文件夾中的兩個文件是打包的輸出。

添加代碼之後的效果

如圖:
在這裏插入圖片描述
問題解決!!!

疑問

其實,這個分片加載感覺像一個障眼法,沒有從根本上解決分片加載。因爲,每次加載pdf文件,需要等好久,但是http的請求時間卻很短。關於文件加載這塊,本人不是很熟悉,希望熟悉這塊的網友留言討論。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章