您的位置:网站首页 > CAD教程 > CAD教程文章

关于AutoCAD的字体讨论

时间:2010-12-31 08:59:04 来源:未知

1.CAD中可用字体

    在AUTOCAD软件中,可以利用的字库有两类。一类是后缀名为shx的,这一类是CAD的专有字库。第二类是存放在WINNT或WINXP等(看系统采用何种操作系统)的目录下的Fonts中,字库的后缀名为ttf,这一类是windows系统的通用字库,除了CAD以外,其他,如Word、Excel等软件,也都是采用的这个字库。

2.在文字样式界面中列出的字体

    如图:这个字体选择中列出的普通字体中有shx的也有系统的字体如宋体==。

    但是大家注意个问题,就是shx字体就是字体文件的名称(有多个个例外情况,典型的就是standard,默认的是txt.shx。但是程序中读取的时候fontfile是"txt",而不是txt.shx,但是只要你修改过为其他字体,然后再设置回txt.shx,那这个时候,fontfile是txt.shx,但是还有其他情况下没有后缀名.shx。见下图中第3张,没有搞明白怎么回事,所以比较的时候应该先检查是否有后缀名,统一去掉后比较)。

    但是系统字体如宋体==却是字体名称,不是字体文件的名称。如仿宋CB2312.这个是字体名称,但是他在系统中的文件名称是见下面我调试过程中显示的:是SIMFANG.TTF。

    还有一个就是这个字体样式的界面中没有列出字体样式名为""的字体样式。但是当用程序遍历字体样式的时候,如果原图中有字体样式名为""的字体样式就能得到。

    那这个时候就在程序中带来问题了。我现在要替换字体,那就是要先判断这个字体样式中的bigfontfile和fontfile在系统中是否存在。但是对于TTF字体,在界面中设置的是字体名,而在文字样式中读取的却是字体文件名,那怎么判断有没有呢?找了下,发现在注册表中有他们的对应关系。对于XP系统见注册表位置:HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionFonts下面。所以可以先读取注册表中的字体文件名,然后再判断有没有。