/// <summary>
/// 修改字体样式
/// </summary>
/// <param name="doc"></param>
/// <param name="textStyleName">字体样式名(STANDARD)</param>
/// <param name="cassLayersName">要改变的图层名</param>
public void SelectFont(Document doc, string textStyleName, List<string>
cassLayersName)
{
Transaction trans = null;
DocumentLock docLock = null;
try
{
trans = doc.TransactionManager.StartTransaction();
docLock = doc.LockDocument();
TextStyleTable st = trans.GetObject(doc.Database.TextStyleTableId,
OpenMode.ForRead) as TextStyleTable;
ObjectId styleID = ObjectId.Null;
//查询是否包含样式
if (st.Has(textStyleName))
{
styleID = st[textStyleName];
}
else
{
return;
}
Editor ed = doc.Editor;
foreach (string cassLayerName in cassLayersName)
{
TypedValue[] tvs = new TypedValue[]
{
new TypedValue((int)DxfCode.Operator, "<and"),
new TypedValue((int)DxfCode.LayerName,cassLayerName),
new TypedValue((int)DxfCode.Start, "TEXT"),//单行文字,多行文字为MTEXT
new TypedValue((int)DxfCode.Operator, "and>")
};
SelectionFilter sf = new SelectionFilter(tvs);
PromptSelectionResult psr = ed.SelectAll(sf);
if (psr.Status == PromptStatus.OK)
{
SelectionSet SS = psr.Value;
ObjectId[] idArray = SS.GetObjectIds();
for (int i = 0; i < idArray.Length; i++)
{
DBText ent = trans.GetObject(idArray[i], OpenMode.ForWrite) as
DBText;
ent.TextStyleId = styleID;
}
}
}
trans.Commit();
}
catch (Exception ex)
{
}
finally
{
if (trans != null)
trans.Dispose();
if (docLock != null)
docLock.Dispose();
}
}
CAD 修改字体样式
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- CAD怎么修改点样式?我们在进行绘图的时候,经常会运用到相关的需要进行进行经绘制点还有其它的一些特殊图像,那么想要...
- 修改UIWebView控件中字体的样式: NSString *htmlString = [NSString str...
- 题记 Alert,项目常用的东西,为了使用起来代码更简单,封装!本文涉及最直接的问题:1.UIAlertContr...