最近需要制作某古典小说的的电子书,其中有二十几个古体的异体字,需要系统或电子书中自带相应的字体或其子集,否则显示都是方框。原因在于这些字属于EXT-B的拓展集字库,一般字体文件都没有相应的字体。但是如果把整个EXT-B字体集嵌入,文件就会过于大(比如细明体的字体文件有十几M,有的还有60多M),而且kindle等设备还会报错(原因还是字体文件过大,但报的错误没显示原因)。其实,一本100字的小说涉及的这类字也说那个几十个,如果抽取了相应字的字体子集,再嵌入文件就好了。可是搜遍了,都没有很好的方法,不是不支持繁体、异体,就是输出的字体不能用。网上也有一篇运用font creator来做,但那个软件处理体积较大的繁体字库比较吃力,经常无响应卡死。
于是自己反复试了,找到一个在线手动制作的方法,不过只适用于字数不多的情况,因为需要一个一个来处理。
(1)打开百度的字体在线处理平台FontEditor(http://fontstore.baidu.com/static/editor/index.html#)。
(2)导入(上传)原版的字体文件;
(3)新开一个窗口(或浏览器中的标签),新建一个字体编辑项目。为什么要新开一个而不在一个页面下建新项目呢?这是因为这个系统在一个字体文件中复制了内容想粘到另一个项目中去时,就会要求你保存,但由于上传的原版字体文件很大,保存常常不成功。
(4)查找想要抽取字体的字的unicode代码。可以直在在百度中搜这个字,会有一些字典网站可显示这个字的各种标准下的代码,比如(http://www.zdic.net/)。
例如“?”字,查到“统一码”一栏,可以看到这个字是拓展B集(EXT-B)中字,编码为“U+25456”(就是unicode码25156)。
(5)在百度FontEditor系统中的“查找字形”功能中查“
25456
”
(
数
字
前
加
25456”(数字前加
25456”(数字前加),就能打到这个字的字符图形,直接复制(有按钮,也支持Ctrl+C)。
(6)粘贴到自己的项目中,自己的字体项目里就出现这个字了,反复上述过程,直到所有需要的字都复制合并到新的项目中。
(7)点击百度FontEditor系统中的TTF输出(也支持其他字体文件输出),就可以下载到精减的字体文件了。