公司OA有了自动识名字后加入签名的功能,而我的名字中有一个生僻字“珽”,在CAD里面使用矢量字体文件不显示这个生僻字,导致名字中间出现“?”号。为了解决这个烦人的问题,需制作一个带这生僻字的字体文件。鉴于网上找到的是通过CAD生成SHP的方案,生成的字体实在难看,要求做到跟原生字体一样质量的效果,还得认真了解SHP的数据构造才行。
- 准备修改的目标矢量字体文件为“HZTXT.shx”,从网上搜索下载SHX2SHP.exe,把“HZTXT.shx”反编译为“HZTXT.shp”,然后用文本编辑器打开。
用记事本打开后的样子
- 找“珽”字的GKB码,然后找“挺”和“玖”的GKB码,这两个字可以拼接成“珽”字。珽[44101]挺[52646]玖[48833](我是通过访问这个网址来在线找码的: http://www.mytju.com/classcode/tools/encode_gb2312.asp)
- 在“HZTXT.shp”中通过GBK码可以找到“挺”和“玖”对应的数据内容
下面是“挺”字的数据
下面是“玖”字的数据
数字看起来很复杂,其实就是字体笔画的XY坐标,括号里面为笔尖从一个点移动到下一个点的相对坐标值,把它们排列一下就清楚了。
*48833,118,0(玖)
7,1,8,
(14,92),1,9,(37,7),(0,0),2,8,
(-18,-5),1,9,(-1,-58),(0,0),2,8, (第2笔)
(-24,-11),1,9,(45,17),(0,0),2,8, (第3笔)
(-39,22),1,9,(37,7),(0,0),2,8, (第4笔)
(22,55),1,9,(3,-6),(-2,-10),(-4,-12),(-3,-11),(-3,-11),(-5,-8),(-3,-8),(-2,-5),(0,0),2,8, (第5笔)
(14,28),1,9,(5,-2),(25,8),(-2,2),(-6,-12),(-5,-12),(-5,-10),(-6,-11),(-8,-10),(-7,-9),(-8,-8),(-9,-6),(-7,-5),(-11,-6),(0,0),2,8, (第6笔)
(55,51),1,9,(22,-45),(17,-2),(-17,3),(-2,2),(0,0), (第7笔)
7,2,0
内容分析:
*48833 = 字体的GBK码
118 = 字体绘画数字总数(增加一个坐标数字加2,增加“1,9”或“2,8”数字也加2)
0 = 没什么用,可忽略
(14,92),1,9, = 从(0,0)开始偏移(14,92)然后落下笔尖,准备划线
(37,7) = 笔尖从一个点偏移(37,7) 到下一个点
(0,0),2,8, = 抬起笔尖,停止划线
...数据最后
7,2,0 = 还不知道什么意思,反正每个字都有。
- 然后就可以以“挺”字的数据为基础,将前面三个笔画删除,添加“玖”字的前面四个笔画,并把前面的GBK码改成“珽”的GBK码44101
*44101,156,0
7,1,8,
(14,92),1,9,(37,7),(0,0),2,8, (玖字第1笔)
(-18,-5),1,9,(-1,-58),(0,0),2,8, (玖字第2笔)
(-24,-11),1,9,(45,17),(0,0),2,8, (玖字第3笔)
(-39,22),1,9,(37,7),(0,0),2,8, (玖字第4笔)
(5,18),1,9,(16,5),(-3,1),(-3,-7),(-11,-31),(-2,1),(20,6),(-2,1),(-2,-5),(-1,-9),
(-2,-8),(-2,-7),(-3,-7),(-3,-7),(-3,-7),(-4,-6),(-4,-5),(-4,-2),(0,0),2,8, (挺字第4笔)
(4,40),1,9,(54,-35),(22,3),(-22,-1),(-6,3),(0,0),2,8,
(9,97),1,9,(3,-3),(-2,1),(-6,-4),(-7,-5),(-15,-8),(0,0),2,8,
(1,-22),1,9,(1,0),(38,8),(-3,1),(-5,-2),(0,0),2,8,
(-32,-36),1,9,(36,6),(0,0),2,8,
(-21,51),1,9,(0,-53),(0,0),
7,2,0
注意(挺字第4笔)开头原来的偏移坐标是(9,1)我改成了(5,18),是因为提手旁的起笔处与王字旁的起笔处不一样,这个需要自己研究怎样设定合理的偏移值。
另外原来“挺”字的笔画总数是“168”,现在改成“珽”字后变成“156”,需要数一数减少的提手旁减少了多少数字,增加的王字旁加回了多少数据,把它修正进去。
注意SHP内文本一行字不要太长,注意换行,否则编译也会不通过。
- 将以上内容复制到在“HZTXT.shp”最后面,保存。
- 在CAD中,命令行输入“COMPILE”,然后选中“HZTXT.shp”,将其编译为“HZTXT.shx”。关闭CAD,将文件拷贝回CAD的FONT文件夹中,启动CAD。
- 大功告成。