使用
AutoCAD的用戶都有這樣的感受:所使用的仿宋體漢字與小字體的數(shù)字字母寫在一起時大小不協(xié)調(diào),數(shù)字字母顯得比漢字大,漢字中的一些符號位置偏低,影響美觀,因而希望通過修改漢字形文件來改變這種狀況。但修改漢字形文件,需要ASCII碼的源形文件(.shp),通常我們只有編譯后的二進制漢字形文件(.shx),沒有漢字的源形文件。漢字形文件是大字體形文件,筆者經(jīng)過探索,弄清了編譯后的大字體形文件的結(jié)構(gòu)以及幾個在參考資料上不見公布的形定義特殊碼含義,據(jù)此編制了將二進制大字體形文件轉(zhuǎn)換為源形文件的程序,并且對得到的源形文件進行修改,編譯得到了令人滿意的二進制仿宋體形文件。下面就是具體的實現(xiàn)步驟。
X";QA": . 1{vpX 一、二進制大字體形文件的結(jié)構(gòu)
vR6^n~ H3
A]m~=3 ----二進制大字體形文件由3部分組成:文件頭、索引部分和形定義部分。
"Cb.cO$i; @&~OB/7B: ----1.文件頭
q;1VF;<"vH DuTlYXM2^ ----文件頭包括大字體版本、索引項數(shù)、換碼范圍個數(shù)、始碼1、終碼1、始碼2、終碼2等等,例:
M^|"be~{' USnD7I/b ----“AutoCAD-86bigfont1.0”0D0A1A0800
NDs]}5# z/eU^2V ------------------大字體版本
beN>5coP%A >.!5M L\ ----CD2B----0300----A100----A300----A600----A600
~>Hnf_pZO C:tSCNH[ ---索引項數(shù)---換碼數(shù)-----始碼1----終碼1------始碼2----終碼2
^Ff~j&L@{ )rs|=M=Xk ----2.索引部分
!#@4xeBPo Y\z^\k ----每個索引項8個字節(jié),包括編碼、形定義字節(jié)數(shù)及形定義在形文件中的偏移位置,例:
g6[/F-3Qlf \dp9@y[^ ----0000----0E00----935E0100
aIn)'] @w#gRQCl ----編碼-------長度---------偏移
JR?
)SGB Z3X&<Y5 ----3.形定義部分
l )