使用
AutoCAD的用戶都有這樣的感受:所使用的仿宋體漢字與小字體的數(shù)字字母寫(xiě)在一起時(shí)大小不協(xié)調(diào),數(shù)字字母顯得比漢字大,漢字中的一些符號(hào)位置偏低,影響美觀,因而希望通過(guò)修改漢字形文件來(lái)改變這種狀況。但修改漢字形文件,需要ASCII碼的源形文件(.shp),通常我們只有編譯后的二進(jìn)制漢字形文件(.shx),沒(méi)有漢字的源形文件。漢字形文件是大字體形文件,筆者經(jīng)過(guò)探索,弄清了編譯后的大字體形文件的結(jié)構(gòu)以及幾個(gè)在參考資料上不見(jiàn)公布的形定義特殊碼含義,據(jù)此編制了將二進(jìn)制大字體形文件轉(zhuǎn)換為源形文件的程序,并且對(duì)得到的源形文件進(jìn)行修改,編譯得到了令人滿意的二進(jìn)制仿宋體形文件。下面就是具體的實(shí)現(xiàn)步驟。
ib;:* oIQor%z 一、二進(jìn)制大字體形文件的結(jié)構(gòu)
oRmN|d ~4 xAon:58m{ ----二進(jìn)制大字體形文件由3部分組成:文件頭、索引部分和形定義部分。
T1\.~]-msb %l5Uy??Z ----1.文件頭
?N&"WL^| b?h"a<7 ----文件頭包括大字體版本、索引項(xiàng)數(shù)、換碼范圍個(gè)數(shù)、始碼1、終碼1、始碼2、終碼2等等,例:
P;mmK&& y85GKysT ----“AutoCAD-86bigfont1.0”0D0A1A0800
_lu.@IX- AIN_.=]"? ------------------大字體版本
(B7M*e fW <qp ----CD2B----0300----A100----A300----A600----A600
11%^K=dq 'FO^VJ;ha ---索引項(xiàng)數(shù)---換碼數(shù)-----始碼1----終碼1------始碼2----終碼2
I>C;$Lp] | t3_E ----2.索引部分
"72
_Sw ~~&8I!r e ----每個(gè)索引項(xiàng)8個(gè)字節(jié),包括編碼、形定義字節(jié)數(shù)及形定義在形文件中的偏移位置,例:
haqL
DVrf \b{=&B[Q$' ----0000----0E00----935E0100
Rb',"` 7 }#a d ----編碼-------長(zhǎng)度---------偏移
zl4Iq+5~6Q Ub4j3` ----3.形定義部分
!pQQkZol Q<w