下面代码会遍历图上所有CAD文字对象,然后取它使用的字体信息
void getAllTextFont()
{
MxDrawDatabase database = (MxDrawDatabase)axMxDrawX1.GetDatabase();
//返回数据库中的文字样式表表对象
MxDrawTextStyleTable textStyleTable = database.GetTextStyleTable();
// 定义选择集对象
MxDrawSelectionSet ss = new MxDrawSelectionSet();
// 全选图上所有对象。
ss.AllSelect();
int i = 0;
// 遍历所有对象
for(;i <ss.Count;i++)
{
MxDrawEntity ent = ss.Item(i);
// 得到对象使用的文字样式记录.
MxDrawTextStyleTableRecord rec = textStyleTable.GetAt(ent.TextStyle);
if (rec == null)
continue;
// 得到TrueType字体属性。
String pTypeface = "";
Boolean bold = false;
Boolean italic = false;
Int32 charset = 0;
Int32 pitchAndFamily = 0;
rec.Font(out pTypeface, out bold, out italic, out charset, out pitchAndFamily);
String sShxFileName;
String sBigShxFileName;
// 如果TrueType字体名为空,表示使用的Shx字体。
if(pTypeface.Length == 0)
{
// 得到西文字体
sShxFileName = rec.fileName;
// 得到中文字体
sBigShxFileName = rec.bigFontFileName;
}
}
}