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

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

  1. 【有了可图网】PS实战系列64:用PS的3D功能设计制作一个酷炫的彩色立体字体

    本篇教大家如何巧用PS的3D功能设计制作一个酷炫的彩色立体字体!教程讲解过程超详细,主要用到了PS的滤镜.调整层以及图层样式来完成效果,需转学起来! 彩色立体文字纹理素材链接链接:https://pa ...

  2. php获取中文拼音(含生僻字,多音字,音标)支持首字母,全拼

    前面文章有提到php获取中文拼音的解决方案,文章链接如下 该方法的优势在于速度够快,不依赖于任何第三方库.但不支持多音字以及音标的获取,现在将借助第三方库解决这个问题 上一篇地址 php获取中文拼音( ...

  3. php获取中文拼音(含生僻字)支持首字母,全拼

    此文为基础篇-优势在于速度更快,无依赖第三方库.如需更多功能可参考进阶篇 进阶篇 支持多音字,音标 php获取中文拼音(含生僻字,多音字,音标)支持首字母,全拼 /*** 中文转拼音 (utf8版,g ...

  4. C++解析IconFont矢量字体文件ttf,以及无锯齿显示矢量字体

    一.下载矢量字体文件TTF 1.可以使用集成好的矢量字体,如FontAwesome.openwebicons.IcoMoon-Free.typicons-- 只要去搜索关键字,找到对应的官网即可下载到 ...

  5. 生僻字_tte_linux_ttf_提取字体_打印生僻字_uni

    最近遇到个问题,客户有个tte文件,是现场的一个生僻字库,tte文件装不上linux系统,然后客户给的示例excel也莫名其妙的没法在我的电脑显示,我也没法测试服务器到底能不能正常显示. tte文件L ...

  6. 制作一个含文字和图片的轮播图

    非原生JS制作轮播图 有一定的参考价值,但是不能保证不出错,还请大佬门自己多多尝试 实现3个功能: 1.自动轮播 2.鼠标放上去停止轮播 3.鼠标放在小圆点上实现轮播 原理 一个盒子(div)放置图片 ...

  7. 获取拼音首字母(含生僻字)工具类

    需要引入pinyin4j-2.5.0.jar package com.ytzn.string;import net.sourceforge.pinyin4j.PinyinHelper; import ...

  8. Python实现检测字符串是否全为汉字(含生僻字)

    1.  中文汉字Unicode 编码表 序号 字符集 字数 Unicode 编码范围 1 基本汉字 20902 4E00-9FA5 2 基本汉字补充 74 9FA6-9FEF 3 扩展A 6582 3 ...

  9. 使用Python制作一个照片换底色的exe程序文件(详细教程)

    文章目录 前言 一.安装相对应的库 二.关于图片处理 1.关于RemoveBg 2.图片处理代码编写 3.窗口图片选择以及提示函数 4.可视化窗口 5.打包成exe程序 写在最后 前言 在校大学生,突 ...

  10. 关于网页中显示生僻字的方法

    问题描述:今天编辑团队在发布一篇文章的时候有一个 人名有(yan)字, 网页默认编码UTF-8 ,字体CSS代码如下:{font-family:-apple-system, Helvetica Ne ...

最新文章

  1. 天翼云从业认证(3.6)了解天翼云大数据SaaS服务
  2. customizing download debug - extraction in ERP
  3. 全国计算机等级考试题库二级C操作题100套(第69套)
  4. Raft协议安全性保证
  5. 光落在你脸上,可爱一如往常
  6. Base64转PDF、PDF转IMG(使用pdfbox插件)
  7. python中的set方法_Python中set与frozenset方法和区别详解
  8. Oracle数据库学习(四):学习中的遇到的问题
  9. 上海往事之参加安永公司项目面试
  10. Microsoft Store 微软商店中 APP 独立安装包下载方法
  11. MAC 安装JDK(附JDK下载地址)
  12. php获取qqkey源码,易语言取QQKEY源码
  13. FFmpeg 和 MP4Box 几个命令
  14. LSTM预测未来一天股票收盘价
  15. 简述计算机软件与硬件,简述计算机硬件与软件的关系。 - 问答库
  16. WordPress增加网站地图
  17. Mac系统升级后,按大小写键没反应了,切换大小写的灯不亮
  18. Docker网络、容器编排
  19. 文件系统之EXT文件系统
  20. windows和linux之间的共享目录,实现Windows和Linux之间的文件共享

热门文章

  1. 华泰证券 python 自动交易软件_有哪些能做自动交易的软件?
  2. ECharts制作报表模板
  3. AI 人工智能学习之微积分
  4. 小火狐进化_第34章 契约小火狐
  5. php拖动滑块验证原理,原生js实现拖动滑块验证
  6. GD32F303修改外部25M晶振
  7. 信号与系统:希尔伯特变换
  8. USB接线定义和链接摄像头
  9. easydarwin 安装_EasyDarwin HLS直播详细配置指南
  10. 30本互联网相关的电子书