近期在处理网盘和在线文件相关问题,面对的事比较多且杂,记录下。
问题:
seafile自身预览PDF文件,部分不显示
图片显示如下:

一、问题来源
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
Adobe-GB1-UCS2.bcmap UniGB-UCS2-H.bcmap
- 更改映射位置
编辑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没有补全
PS:今天,升级到社区版 7.1.3,pdf也会显示不全,需要同样处理。
同样用onlyoffice预览,会出现乱码,这个貌似是 onlyoffice的 BUG,对应issue:https://github.com/ONLYOFFICE/DocumentServer/issues/838
来源:oschina
链接:https://my.oschina.net/u/4280362/blog/3233152

