制作一个含生僻字的矢量字体文件(*.shx)

公司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,                         (第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笔)

(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。
  • 大功告成。

 

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
.shx字体是一种常用于绘制二维图形的特殊字体文件格式。在Web开发中,.shx字体具有以下几个优点和用途。 首先,.shx字体是一种矢量字体格式,它不受放大或缩小的影响,可以无损地进行图像尺寸的伸缩变换,保持字形的清晰度和几何形状的准确性。这种特性对于开发者来说非常重要,因为它可以确保在不同分辨率的屏幕上显示一致的字体效果,避免了文字在放大或缩小时出现模糊、锯齿或变形等问题。 其次,.shx字体非常适用于绘制符号、图标和标识等简单几何形状的图形。它的字形设计简洁、线条规整,可以用来表达一些特定的符号、图标或图形,如箭头、勾号、叉号等。这在Web开发中对于设计元素的实现非常有用,可以提供更多自定义的图形选择,丰富页面的视觉效果。 另外,.shx字体还可以在Web地图开发中发挥重要作用。Web地图通常需要标示不同的地理要素,如河流、湖泊、山脉等,而这些要素往往以矢量图形的形式呈现。使用.shx字体可以方便地绘制这些需要的地图符号,使得地图信息更加清晰、准确,用户可以更方便地理解地图内容。 总而言之,.shx字体在Web开发中具有清晰的字形、可伸缩的特点,适用于绘制简单几何形状的图形和图标,并在Web地图开发中扮演重要角色。它为开发者提供了更多字体选择、视觉表达和地图标注的可能性,提升了Web应用的用户体验和功能性。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值