最近工作中,需要在suse操作系统中添加一种新的中文字体,然后在chromium中传入font family名称,通过skia,再通过fontConfig访问该字库。

添加字库的步骤大致有:

(1)将需要增加的字库文件拷贝到~/.fonts/目录下。(注:对~/.fonts/目录的扫描,需要预先在/usr/loca/etc/font/font.conf里面配置)

(2)/usr/loca/etc/font/font.conf配置的30s会扫描一次字库文件,这个一般是默认配置。

(3)使用

fc-list命令查看fontConfig当前检测到的字库,一般打印如下:

NSimSun,新宋体:style=Regular

FZHeiTi,方正黑体:style=Regular

FZFangSong,方正仿宋:style=Regular

MicroHei,文泉驿微米黑(完整版)_by_zxl1103:style=Regular

SimSun,宋体:style=Regular

AR PL SungtiL GB,文鼎PL简报宋:style=Regular

FZKaiTi,方正楷体:style=Regular

AR PL ZenKai Uni,文鼎PL中楷Uni:style=Medium

FZSongTi,方正宋体:style=Regular

AR PL ShanHeiSun Uni,文鼎PL細上海宋Uni,文鼎PL细上海宋Uni:style=Regular

AR PL KaitiM GB,文鼎PL简中楷:style=Regular

其中MicroHei是我们需要添加的字库,看来是fontConfig扫描到了。

(4)使用

fc-match -v MicroHei 命令可查看MicroHei的详细信息。比较有用的数据有:

Pattern has 30 elts (size 32)

family: "MicroHei"(s)

familylang: "en"(s)

style: "Regular"(s)

stylelang: "en"(s)

fullname: "Droid Sans"(s)

fullnamelang: "en"(s)

slant: 0(i)(s)

weight: 80(i)(s)

width: 100(i)(s)

size: 12(f)(s)

pixelsize: 12.5(f)(s)

foundry: "unknown"(s)

antialias: FcTrue(s)

hintstyle: 3(i)(s)

hinting: FcTrue(s)

verticallayout: FcFalse(s)

autohint: FcFalse(w)

globaladvance: FcTrue(s)

file: "/usr/local/app/.fonts/MicroHei.ttf"(s)

index: 0(i)(s)

outline: FcTrue(s)

scalable: FcTrue(s)

dpi: 75(f)(s)

scale: 1(f)(s)

其中file和family可以确定该字库是不是你添加的字库。

(5)修改

/usr/local/etc/fonts/suse-post-user.conf文件,

对应的alias/family/prefer配置,serif,sans-serif及monospace三个family建议都修改。

由于suse中默认的中文使用FZSongTi,可以将MicroHei添加到FZSongTi的配置之前。prefer数组配置的主要意义是确认fontConfig以family name搜索字库时的先后顺序。

如果prefer数组中没有添加MicroHei字段,fontConfig就不会搜索MicroHei字库了。

(6)使用

fc-cache -f命令强制更新fontConfig服务。使之前加入的配置立即生效。

(7)使用模拟器访问页面,触发服务器上的Chrome服务加载新字库。使用

lsof | grep "XXXX"查看进程资源引用情况。其中XXXX是你的Chrome进程端口号,如果有以下信息:

Chrome 14169        mqq  mem       REG                8,3     9152   1920703 /usr/local/app/.fontconfig/8f60ca31bea1e8f374144819c091a766-x86-64.cache-2

Chrome 14169        mqq  mem       REG                8,3    33448   1920700 /usr/local/app/.fontconfig/7ef2298fde41cc6eeb7af42e48b7d293-x86-64.cache-2

Chrome 14169        mqq  mem       REG                8,3  6193796   1430046 /usr/local/app/.fonts/MicroHei.ttf

说明字库已经被Chrome服务成功加载了。

注:如果需要在Chrome服务中指定font family,需要修改服务的配置文件,添加

以下字段(默认不配置时,FontFamily值为"simsun"):

#font_family

FontFamily="MicroHei"

(8)新的MicroHei字库与系统默认的FZSongTi对英文的显示有明显区别,MicroHei是非等宽字符集,FZSongTi是等宽字符集。可通过模拟器,显示英文字符网页或查看下发的文件中字符串的宽度对比,确认最终字库更换是否生效。

linux font etc,linux下fontConfig配置相关推荐

  1. linux pptp客户端_Linux下如何配置pptp

    你知道在Linux下如何配置pptp吗? 是不是很多小伙伴们都不知道Linux下配置pptp的方法,那么接下来文章中将介绍Linux下简单配置pptp的内容,希望对大家有帮助. 由于OpenVPN使用 ...

  2. git extensions linux,GitExtensions 在 Ubuntu 下的配置

    最近一直在架设内网的GitLab,和成套的适用工具.(之前架GitLab的总结)对于ubuntu平台下使用的GUI,一直没有找到什么特别满意的(某个乌贼强制要求登录帐号,SourceTree是Mac上 ...

  3. Linux黑洞路由命令,Linux | 防火墙什么场景下需要配置黑洞路由

    回答 当NAT地址池地址与公网接口地址不在同一网段时,必须配置黑洞路由. 当公网用户主动访问NAT地址池中的地址时,FW收到此报文后,无法匹配到会话表,根据缺省路由转发给路由器,路由器收到报文后,查找 ...

  4. aix linux ftp,在AIX下安装配置FTP服务器

    两个目录的权限如下: drwxr-xr-x   2 tkbudget tkbudget        256 Mar 16 17:02 cron_logs drwxr-x---   2 tkbudge ...

  5. RedHat Linux AS 5.3 下DNS的配置步骤----为学习Oracle网络管理埋下伏笔

    转载请注明出处:http://blog.csdn.net/guoyjoe/article/details/16982179 RedHat Linux AS 5.3 下DNS的配置与RedHat Lin ...

  6. linux login 安装桌面,Linux_Ubuntu Linux下安装配置fluxbox桌面环境,安装   基本系统Ubuntu 7.10 G - phpStudy...

    Ubuntu Linux下安装配置fluxbox桌面环境 安装 基本系统Ubuntu 7.10 Gutsy,Xfce桌面.直接安装源里的fluxbox: aptitude install fluxbo ...

  7. Linux(ubuntu)下安装anaconda(64位)并配置jupyter notebook远程访问

    Linux(ubuntu)下安装anaconda(64位)并配置jupyter notebook远程访问 Anaconda指的是一个开源的Python发行版本,其包含了conda.Python等180 ...

  8. Linux环境下路由表配置一

    路由表配置网关及端口   网络地址:分析目标地址 接口:数据有可能从路由器的哪个出口出来,哪个就是接口 网关:目标网络与发数据的设备不在一个网段内,下一个路由器邻近主配置路由器的接口ip就是网关,线路 ...

  9. Linux服务器下安装配置Nginx的教程

    这篇文章主要介绍了Linux服务器下安装配置Nginx服务器的教程,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下 Nginx("engine x")是一款 ...

最新文章

  1. Centos 7 安装 gcc-5.5
  2. 跨进程信息交互真个费事。
  3. FCKeditor 2.6.4.1 初始化值不能显示中文问题
  4. JDK安全证书的一个错误消息 No subject alternative names present的解决办法
  5. flowable背压 取消_使用Flowable.generate()生成可感知背压的流– RxJava常见问题解答...
  6. 如何使用man命令linux,Linux man命令的使用方法
  7. git+jekyll部署备忘
  8. eDiary电子日记本
  9. linux配置sftp-server,Ubuntu Server如何配置SFTP(建立用户监狱)
  10. 如何实现一个遵从设计原则的积分兑换系统2
  11. windows/system32/winload.exe系统无法登录报错428的快速解决方法
  12. Java,Android 汉明窗 Hanmming
  13. C语言实现双人五子棋
  14. 赠与今年的大学毕业生 (二)
  15. 技巧分享:wps文件怎么转换成word格式?
  16. 【C语言】 Static关键字的用法和详解(太细了!!!)
  17. python 结合百度识图识别文字
  18. EtherCAT理论学习笔记【二】——寻址服务与FMMU
  19. 【剑指offter】【C++】【二叉树】27. 二叉树的镜像
  20. java商城毕业设计 JavaWeb家具家居购物商城毕业设计(8)商品评论列表

热门文章

  1. 怎么恢复U盘刚刚删除的文件呢?
  2. php 画图(主要采用的是php的GD库) copy直接用
  3. 偏序集概念+Dilworth定理
  4. 互联网将成为历史,物联网将取而代之
  5. Android解决动画残影问题
  6. u盘固定盘符_winpe系统下固定U盘盘符的方法
  7. 和画意思相近的字_和“成”字意思相近的字有哪些?有诗意的四字词语有哪些?...
  8. CTB-LOCKER敲诈者病毒下载器脱壳之样本1
  9. 如何在iPad上实现QQLive HD界面
  10. 微信小程序选择手机相册里的图片并上传到页面