[daily][troubleshoot][archlinux][wps][font] wps文档中的图内容无法显示中文

用linux作为工作生产环境的几个需要解决的问题之一是:文档协作,即如何兼容Micro$oft Office格式的文档。

我一般的工作方式是:在linux下创建一个win7的虚拟机,安装常用的windows软件,office,QQ,teamview等。

写文档的时候,我会进入win虚拟机,使用office软件进行编写,保证其他大多数使用windows的同事可以正常打开我的文档。

读文档的时候,我在linux里使用wps。先后用过openoffice, libreoffice,wps。wps与M$兼容最好。虽然wps也不能保证完全兼容,但是就阅读而已,其linux版本的可用性和稳定性都非常好,尽管仍然存在一下小问题。例如在M$ office下排版2页的文档,到了wps上就变成了三页。

当出现影响阅读的问题时,我会打开虚拟机,在windows环境下完成阅读。在我用的这不到两年的时间里,这种情况还是非常少的。接下来要说的就是其中情况之一:

现象:

部分Micro$oft Office Word格式文档中的图片,流程图等内容,在linux wps环境下无法显示中文,如下图:

[daily][troubleshoot][archlinux][wps][font] wps文档中的图内容无法显示中文

解决方法:

到windows环境下,将 C:\Windows\Fonts\ 目录下的内容,拷贝至 ~/.fonts/ 目录下, 如下图:

[daily][troubleshoot][archlinux][wps][font] wps文档中的图内容无法显示中文

已经从虚拟机中拷贝至了临时共享目录 ~/Windows/Temp/Fonts 。

创建 ~/.fonts 目录,并将字体拷贝过来。

[tong@T7:~]
% mv ~/Windows/Temp/Fonts .fonts

备注一:这个文件夹一个500多MB。其实只需要拷贝几个字体过来就可以了。但是我并不知道要拷哪些,索性就都拷贝过来了。

备注二:关于什么程序在加载与管理 .fonts 这个目录,我并不清楚,目前也没有打算深入的研究。另外需要提到的还有另一个配置文件  ~/.fonts.conf

[tong@T7:~]
% cat ~/.fonts.conf
<?xml version="1.0"?><!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<dir>~/.fonts</dir>
</fontconfig>
[tong@T7:~]
%

备注二: 字体的管理是由 Fontconfig 程序完成的。

目录 ~/.fonts 也是由该程序进行加载。这是旧版本中的加载目录,在新版本中这个路径已经不被推荐,推荐的路径为:~/.local/share/fonts. 参加 Font_paths

上一段的蓝色字是从archwiki中的描述,严格来讲这是不正确。将被废止的是~/.fonts.conf, ~/.fonts.conf.d/, ~/.fontconfig/*.cache-* 而并不是~/.fonts/目录,因为这个目录是在$XDG_CONFIG_HOME/fontconfig/fonts.conf中指定的。当然我想它的意思应该是说,以后不会再指向那个地方了。详细可以见我的另一篇博:[daily][archlinux][fonts] 在linux下管理字体

结果:

关闭文档,重新使用wps打开,无需重启,无需logout。

[daily][troubleshoot][archlinux][wps][font] wps文档中的图内容无法显示中文

显示正常啦~~~ :- )

---------------------- update @ 20161126 -----------------------

虽然解决了wps的问题,但是thunderbird又出了问题,因为我打包了win的字体。所以thunderbird的默认中文字体不在使用adobe了变得巨丑。

然后我尝试删掉了我打包的win字体,重新安装了ttf-ms-fonts字体包,并没有解决wps的问题。

这时候有两个解决方案:

  A。 到windows里查看这个文件,找到这个图里面的这几个中文是用什么中文字体写的,然后只拷贝这个过来。这并不能一劳永逸。

  B。研究字体管理机制,从根上搞定。截止到此刻,还没有搞定。[daily][archlinux][fonts] 在linux下管理字体

  

上一篇:SqlServer中Sql语句的逻辑执行顺序


下一篇:[MVC4-基礎] 從資料庫取值顯示在DropDownList中