近期在处理网盘和在线文件相关问题,面对的事比较多且杂,记录下。
问题:
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