在网络上搜索到一些添加字体的方法但不是方法太老就是没有说清楚方法,整个过程非常纠结,遇到各种困难,于是在成功之后决定写个教程,至少可以留备自用。
本教程用于为ipad添加第三方字体,比如“ 微软雅黑”“仿宋”“方正准圆”等,添加的字体可以直接采用windows下的字体。添加后可以直接被iwork系列软件调用,也可用于ibook的阅读字体,理论上支持所有可以自选字体的应用,但限于应用本身设计和对中文字库的支持性能而有所不同。
注意:
1.本教程不能改变系统字体,修改系统字体方案更简便但也有输入法字库不全等问题,需要者请论坛自行搜索。
2.需要ipad越狱,需要修改系统文件,请做好备份。
3.本人在ipad3上完成整个过程,ios5.1.1,已越狱,其他系统理论上没有问题,但并不保证。
教程:
step1、从windows中提取出字体,以微软雅黑为例,字体文件:msyh.ttf
step2、将该字体TTF文件COPY到/System/Library/Fonts/Cache下,但是注意:文件名第一个字母必须大写,否则在iwork中调用会导致iwork闪退。因此实际copy后的文件名为Msyh.ttf
step3、
ios5.1.1版本修改/System/Library/Fonts/CGFontCache_H_2.plist(ios5 以下的版本修改 CGFontCache.plist)
以下引用他人帖子并做修改,以微软雅黑为例:
第一步:注册字体
注册字体用以下的键值格式,例如:
Microsoft YaHei 必须用这个字体确定的英文(即 字体真名)
/System/Library/Fonts/Cache/Msyh.ttf
第一个注意!必须用这个字体确定的英文(即 字体真名),中文不可以。比如上面的例子,要写“Microsoft YaHei ”,不可以写“微软雅黑”,也不可以写“Msyh”。(如何知道字体的英文名称?将你电脑的系统语言改为英文,一看就知道了。或者用字体查看软件之类的东东。)
第二个注意!有的时候,字体名称是几个中间有空格的英文,例如:WenQuanYi Micro Hei,这是微米黑,要写两套如下:
WenQuanYi Micro Hei
/System/Library/Fonts/Cache/wqy-microhei.ttc
WenQuanYiMicroHei
/System/Library/Fonts/Cache/wqy-microhei.ttc
这是因为有的时候导入的文档指定字体会自动去掉空格,所以两个都要填,以防万一。
(这一步不做也不会有太大问题)
第二步:映射字体
映射字体用以下的键值格式,例如:
微软雅黑这个部分是自定义显示在应用字体选项中的显示名称,可以任意定义,比如叫“你又傲娇了”也可以,支持中文
Bold
Microsoft YaHei
Plain
Microsoft YaHei
上面这个例子里,有粗体(Bold)和常规(Plain)两个定义,可以定义为不同的,实现按B切换。此外还有诸如斜体、粗斜体等等,也是这么改。
这个映射与注册字体不同,不验证字体文件,所以你可以尽可能发挥,例如:
WenQuanYi Micro Hei
Bold
NSimSun
Plain
Microsoft YaHei
上面这个实现的效果是:字体显示名称为微米黑,但实际上显示常规是雅黑的效果,粗体是新宋体的效果。
step4. 修改ibook中的注册表:
修改//iBooks.app文件夹中的FontPresets-iPad.plist
加入
fontFamily
Microsoft YaHei
settings
注意:以上非完整形式,这个注册表对每个ibook中的字体进行定义,在setting后还有至少10项代码,处理方法非常简单,找到一个原有字体的设定,直接改为Microsoft YaHei,或者复制这个字体完整的代码,在其之后粘贴,然后修改。通常以这几十行代码以 开头,以结尾
以上就全部结束了,打开ibook看看吧,也可以用stanza在step3结束时就验证一下,前3个step最容易出问题,请一定记住:
1.注意:文件名第一个字母必须大写,否则在iwork中调用会导致iwork闪退。因此实际copy后的文件名为Msyh.ttf
2.必须用这个字体确定的英文(即 字体真名),中文不可以。比如上面的例子,要写“Microsoft YaHei ”,不可以写“微软雅黑”,也不可以写“Msyh”
3.每一步请仔仔细细,特别是改注册表的时候!一个代码复制掉了,可能就导致最终没有效果。