CAD关于文字样式得到图所有文字对象使用的字体文件(com接口c#语言)

mac2024-04-19  6

下面代码会遍历图上所有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; } } }

 

最新回复(0)