文章目錄
- 一、問題來源
- 二、解決
- 三、題外話
近期在處理網盤和線上檔案相關問題,面對的事比較多且雜,記錄下。
問題: seafile
自身預覽PDF檔案,部分不顯示
圖檔顯示如下:
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiQDOxEzX3xCZlhXam9VbsUmepNXZy9CXwJWZ3xCdh1mcvZ2Lc1zaHRGcWdUYuVzVa9GczoVdG1mWfVGc5RHLwIzX39GZhh2csATMflHLwEzX4xSZz91ZsAzMfRHLGZkRGZkRfJ3bs92YskmNhVTYykVNQJVMRhXVEF1X0hXZ0xiNx8VZ6l2cssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZwpmLyMDM3YzM3QzM1kDM1ITNzYzX1AjN1UTMxIzLcBTMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.jpg)
一、問題來源
seafile
版本:7.0.5
原因:
- 原檔案
,字型沒有嵌入,是以需要本系統的字型渲染pdf
-
使用seafile
,而把對應pdf.min.js
內建了。map
解決這個問題,關鍵點在
seafile
的
pdf.js
二、解決
用
seafile
預覽“有問題的”
pdf
,且在浏覽器裡打開開發控制台
會發現,缺少對應
map
檔案,如圖:
解決步驟:
- 建立目錄
,将/media/js/pdf/web/cmaps/
,Adobe-GB1-UCS2.bcmap
這兩個檔案放在這個目錄下面UniGB-UCS2-H.bcmap
檔案可以在 github 裡下載下傳:https://github.com/mozilla/pdf.js/blob/master/external/bcmaps/UniGB-UCS2-H.bcmap
$ root@3e1c6f87e1aa:/opt/seafile/seafile-server-latest/seahub/media/js/pdf/web/cmaps# ls
-
更改映射位置
編輯
檔案viewer.js
$ root@3e1c6f87e1aa:/opt/seafile/seafile-server-latest/seahub/media/js/pdf# vi viewer.js
更改如下:
cMapUrl: {
// value: '../web/cmaps/',
value: '/media/js/pdf/web/cmaps/',
kind: OptionKind.API
}
- 重新開機服務
再次從
seafile
打開“有問題的”
pdf
,顯示正常。
若還是未成功,可能是因為緩存:
再次打開可能會因為緩存,顯示的
pdf
不全,這時候需要将緩存關閉。
三、題外話
相關問題,調研了其他幾家的處理方式,列舉如下:
- 釘釘
預覽,是圖檔PDF
-
預覽WPS
,可以奏效,但字型貌似有些不同PDF
-
,預覽kkfilepreview
也是走PDF
pdf.js
嘗試了下,沒有補全
kkfilepreview
。
PDF